61 lines
1.8 KiB
Markdown
61 lines
1.8 KiB
Markdown
|
|
# Phase 24: OBSERVE Tax Prune(tiny_class_stats の hot-path atomic を compile-out)
|
|||
|
|
|
|||
|
|
**Status**: ✅ GO(default: compiled-out を維持)
|
|||
|
|
|
|||
|
|
## Problem statement
|
|||
|
|
|
|||
|
|
Tiny の hot path に「観測(OBSERVE)」用の atomic 増分が残っている:
|
|||
|
|
|
|||
|
|
- `core/box/tiny_class_stats_box.h`
|
|||
|
|
- `tiny_class_stats_on_*()` が `atomic_fetch_add_explicit()` を実行
|
|||
|
|
|
|||
|
|
観測は研究/診断用途であり、常時コスト(固定税)として残すのは mimalloc 的にも不利。
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
観測目的の atomic を **compile-out** して、hot path の固定税をゼロに寄せる。
|
|||
|
|
|
|||
|
|
- ✅ compile-out: `#if HAKMEM_*_COMPILED`(Phase 22 の勝ち筋)
|
|||
|
|
- ❌ link-out: Makefile から `.o` を外す(Phase 22-2 の NO-GO)
|
|||
|
|
|
|||
|
|
## Scope (v1)
|
|||
|
|
|
|||
|
|
対象(5箇所):
|
|||
|
|
|
|||
|
|
- `tiny_class_stats_on_uc_miss(ci)`
|
|||
|
|
- `tiny_class_stats_on_warm_hit(ci)`
|
|||
|
|
- `tiny_class_stats_on_shared_lock(ci)`
|
|||
|
|
- `tiny_class_stats_on_tls_carve_attempt(ci)`
|
|||
|
|
- `tiny_class_stats_on_tls_carve_success(ci)`
|
|||
|
|
|
|||
|
|
## Design(Box Theory)
|
|||
|
|
|
|||
|
|
### BuildFlagsBox(compile-time boundary)
|
|||
|
|
|
|||
|
|
- `core/hakmem_build_flags.h`
|
|||
|
|
- `HAKMEM_TINY_CLASS_STATS_COMPILED=0/1`(default: 0)
|
|||
|
|
|
|||
|
|
### API 不変(戻せる / 構造を汚さない)
|
|||
|
|
|
|||
|
|
- `tiny_class_stats_on_*()` の関数形は保持
|
|||
|
|
- compiled-out 時は no-op(引数未使用は `(void)ci;` で抑制)
|
|||
|
|
|
|||
|
|
## A/B plan(build-level)
|
|||
|
|
|
|||
|
|
1) baseline(default compile-out)
|
|||
|
|
- `make clean && make -j bench_random_mixed_hakmem`
|
|||
|
|
- `scripts/run_mixed_10_cleanenv.sh`
|
|||
|
|
|
|||
|
|
2) compiled-in(研究用)
|
|||
|
|
- `make clean && make -j EXTRA_CFLAGS='-DHAKMEM_TINY_CLASS_STATS_COMPILED=1' bench_random_mixed_hakmem`
|
|||
|
|
- `scripts/run_mixed_10_cleanenv.sh`
|
|||
|
|
|
|||
|
|
## GO/NO-GO(保守運用)
|
|||
|
|
|
|||
|
|
この種の “prune” は layout 変化が絡むため、判断は保守的に運用する:
|
|||
|
|
|
|||
|
|
- GO: +0.5% 以上
|
|||
|
|
- NEUTRAL: ±0.5%
|
|||
|
|
- NO-GO: -0.5% 以下(revert 推奨)
|
|||
|
|
|