Files
hakmem/docs/TINY_P0_BATCH_REFILL.md

28 lines
1.4 KiB
Markdown
Raw Normal View History

Tiny P0 Batch Refill — 運用ガイドデフォルトON
概要
- TinyのSuperslab→TLS(SLL)補充をバッチ化して分岐・書き込み・メモリアクセスを削減し、スループットを向上します。
- 本リポジトリではデフォルトONビルド時: HAKMEM_TINY_P0_BATCH_REFILL=1、実行時: 既定ON
利点
- 1回のdrain / 1回のSLL splice / まとめたactive加算で負荷削減
- 連続carveでキャッシュ効率が高い
既知の注意点(監査継続)
- カウンタ不整合の警告([P0_COUNTER_MISMATCH])が残存する場合がありますが、致命的ではありません。監査継続中。
ランタイムA/Bスイッチ
- 2025-12 cleanup: ランタイム環境変数トグルは削除。P0はビルド時 `HAKMEM_TINY_P0_BATCH_REFILL` が 1 のときだけ有効。
- 直詰めP0→FC: C5のみ既定ON。C7/all 直詰めは無効化済み(固定挙動)。
- Remote drain: しきい値64で常時drain無効化トグルは廃止
- P0ログ: 無効化済み(元 `HAKMEM_TINY_P0_LOG`)。
ベンチ指標(例)
- P0 OFF: ~2.73M ops/s100k×256B, 1T
- P0 ON: ~2.76M ops/s同条件, 最速)
実装の主な場所
- 本体: core/hakmem_tiny_refill_p0.inc.hsll_refill_batch_from_ss
- ヘルパ: core/tiny_refill_opt.htrc_*
- Remote drain: core/superslab/superslab_inline.h_ss_remote_drain_to_freelist_unsafe