Major Features: - Debug counter infrastructure for Refill Stage tracking - Free Pipeline counters (ss_local, ss_remote, tls_sll) - Diagnostic counters for early return analysis - Unified larson.sh benchmark runner with profiles - Phase 6-3 regression analysis documentation Bug Fixes: - Fix SuperSlab disabled by default (HAKMEM_TINY_USE_SUPERSLAB) - Fix profile variable naming consistency - Add .gitignore patterns for large files Performance: - Phase 6-3: 4.79 M ops/s (has OOM risk) - With SuperSlab: 3.13 M ops/s (+19% improvement) This is a clean repository without large log files. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
1.7 KiB
1.7 KiB
Stability Policy (Segfault‑Free Invariant)
本リポジトリの本線は「セグフォしない(Segfault‑Free)」を絶対条件とします。すべての変更は以下のチェックを通った場合のみ採用します。
1) Guard ラン(Fail‑Fast)
- 実行:
./scripts/larson.sh guard 2 4 - 条件:
remote_invalid/REMOTE_SENTINEL_TRAP/TINY_RING_EVENT_*の一発ログが出ないこと - 境界: drain→bind→owner_acquire は「採用境界」1箇所のみ。publish側で drain/owner を触らない
2) Sanitizer ラン
- ASan:
./scripts/larson.sh asan 2 4 - UBSan:
./scripts/larson.sh ubsan 2 4 - TSan:
./scripts/larson.sh tsan 2 4
3) 本線の定義(デフォルトライン)
- Box Refactor:
HAKMEM_TINY_PHASE6_BOX_REFACTOR=1(ビルド既定) - SuperSlab 経路: 既定ON(
g_use_superslab=1。ENVで明示的に 0 を指定した場合のみOFF) - 互換切替: 旧経路/A/B は ENV/Make で明示(本線は変えない)
4) 変更の入れ方(箱理論)
- 新経路は必ず「箱」で追加し、ENV で切替可能にする
- 変換点(drain/bind/owner)は 1 箇所集約(採用境界)
- 可視化はワンショットログ/リング/カウンタに限定
- Fail‑Fast: 整合性違反は即露出。隠さない
5) 既知の安全フック
- Registry 小窓:
HAKMEM_TINY_REG_SCAN_MAX(探索窓を制限) - Mid簡素化 refill:
HAKMEM_TINY_MID_REFILL_SIMPLE=1(class>=4 で多段探索スキップ) - adopt OFF プロファイル:
scripts/profiles/tinyhot_tput_noadopt.env
運用では上記 1)→2)→3) の順でチェックを通した後に性能検証を行ってください。