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スイッチ - P0有効化(既定): HAKMEM_TINY_P0_ENABLE unset or not '0' - P0無効化: HAKMEM_TINY_P0_ENABLE=0 もしくは HAKMEM_TINY_P0_DISABLE=1 - 直詰め(P0→FC): - class5(256B): 既定ON(HAKMEM_TINY_P0_DIRECT_FC=0でOFF) - class7(1KB): 既定ON(HAKMEM_TINY_P0_DIRECT_FC_C7=0でOFF) - Remote drain無効(切り分け用): HAKMEM_TINY_P0_NO_DRAIN=1 - P0ログ: HAKMEM_TINY_P0_LOG=1(active_delta と taken の一致検査を出力) ベンチ指標(例) - P0 OFF: ~2.73M ops/s(100k×256B, 1T) - P0 ON: ~2.76M ops/s(同条件, 最速) 実装の主な場所 - 本体: core/hakmem_tiny_refill_p0.inc.h(sll_refill_batch_from_ss) - ヘルパ: core/tiny_refill_opt.h(trc_*) - Remote drain: core/superslab/superslab_inline.h(_ss_remote_drain_to_freelist_unsafe)