# Implementation Status (2025-10-22) このドキュメントは、「何が実装されているか」「どの設計と一致しているか」を整理します。 ## 4軸(SACS‑3)の実装状況 | 軸 | 現状 | 備考 | |---|---|---| | しきい値(mmap/L1↔L2) | 2MiB固定(ホットパス) | ELOモジュールは実装済だがSACS‑3では未適用。将来 `thp_threshold` を離散探索で反映予定 | | 器の数(サイズクラス数) | Mid: 固定5 + DYN1×1(手動/自動) | DYN1: `HAKMEM_MID_DYN1` 手動、`HAKMEM_DYN1_AUTO=1` でピーク自動割当(実験的) | | 器の形(境界・W_MAX) | 丸め許容W_MAX実装済 | `HAKMEM_WMAX_MID/LARGE` でA/B。DYN1は境界そのものを可変 | | 器の量(CAP) | 学習済(別スレッド) | Soft CAPで補充強度制御。Mid/Large+DYN1専用CAP(学習対象) | ## 計画A: ページフォルト最適化(OPTIMIZATION_SUMMARY) | Phase | 対象 | 状態 | 備考 | |---|---|---|---| | P0-1 | Whale Cache Pre‑Warm | 未実装 | Whale自体は実装済(容量/しきい値)が、pre‑warm手順は未実装 | | P1-1 | L2 Pool Pre‑Warm | 未実装 | L2/L2.5はmmap-backedだが、事前ウォーム・ページタッチは未実装 | | P2-1 | Tiny Slab Pre‑Warm | 未実装 | TinySlabのpre‑warm(採番/初期化)未実装 | 参考: vm/json/mir の短縮期待は、まずCAP/DYN1/W_MAX調整の効果を観測した後に検討。 ## 計画B: スレッド安全性対策(PHASE_6.15) | Phase | 対象 | 状態 | 備考 | |---|---|---|---| | Step 1 | ドキュメント修正 | 実施 | docs/* 整理済み | | P0 | Global Safety Lock | 未実装 | 代わりに wrapperガード+TLS経路で安定化 | | P1 | Tiny Pool TLS | 実装済 | TLS Active Slab + MPSC remote‑free + padded あり | | P2 | L2 Pool TLS | 実装済 | freeはTLS返却(A/B: `HAKMEM_POOL_TLS_FREE`)| | P3 | L2.5 Pool TLS | 実装済 | `tls_l25_cache[]` あり | その他: non‑empty bitmap, padded locks, shard steal(Mid/L25)実装済。 ## 最新の次ステップ(NEXT_STEPS_2025_10_22) 推奨順: 1. Tiny改善(MPSC drain機会拡大、CAP適応) 2. L2/L2.5 bundle policy(CAP/bundle/steal 微調整) 3. Site‑bucket policy table(ACE) 現状の優先は「Mid/Large CAP/DYN1/W_MAX の整地・A/B」。 ## 現在の代表的なA/Bパラメータ - DYN1 CAP: `HAKMEM_CAP_MID_DYN1`(32/64/128 pagesを候補) - Mid最小バンドル: `HAKMEM_POOL_MIN_BUNDLE=2/3/4` - WRAP L1許可: `HAKMEM_WRAP_L2=1`, `HAKMEM_WRAP_L25=1` - W_MAX: `HAKMEM_WMAX_MID=1.4/1.6/1.7` ## 計測ノート/再現 - docs/benchmarks/2025-10-22_SWEEP_NOTES.md — 今日の要約(コマンド/抜粋) - scripts/save_prof_sweep.sh — 日時フォルダに自動保存(summary.txt+各.log) ## 参照(設計/ENV) - docs/specs/CURRENT_SPEC.md — 現在仕様(SACS‑3/学習) - docs/specs/ENV_VARS.md — 環境変数一覧 - docs/roadmap/ROADMAP.md — 実装ロードマップ