Files
hakmem/docs/status/archive/PHASE_6.17_RESULTS_2025_10_23.md
Moe Charm (CI) 52386401b3 Debug Counters Implementation - Clean History
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>
2025-11-05 12:31:14 +09:00

1.5 KiB
Raw Blame History

Phase 6.17 Results (20251023)

What we shipped

  • Mid headerless (alloc+free hot path):
    • HDR_LIGHT>=1: allocでヘッダ未書込み、freeはページ記述子でMid判定しヘッダ検証回避。
  • Transfer Cache gating:
    • inbox非空かつ ring->top < trigger のときだけdrainENV: HAKMEM_TC_DRAIN_TRIGGER, default 1
    • drain上限ENV: HAKMEM_TC_DRAIN_MAX, 推奨 64
  • Mid Active Page 2枚化:
    • TLS active pageをa/bの2枚に拡張。枯渇時はslot解放。
  • Makefile: RING_CAPをビルド時切替8/16

Bench (10s, larson, BURST)

  • Tiny 864B参考: HEAD2HEAD_FINAL
    • 4T: hakmem 56.9M vs mimalloc 73.9M-23%
  • Mid 232KiB本フェーズの代表
    • ベスト帯(最近値): 12.913.5M条件により〜14.2M再現)
    • TC gatedtrigger=1, drain_max=64: 13.24Mdocs/benchmarks/20251023_052254_MID_TC_TRIGGER
    • P0+P1統合: 14.36Mdocs/benchmarks/20251023_045515_MID_P0P1 近傍と併せて)

Takeaways

  • Midの「キャッシュヒット時の無駄」を削減TC無条件drain→必要時のみ
  • alloc側完全ヘッダレス化でper-op書込みを削減、Active2でbitmap走査/遠征を減少。
  • まだ中央経路共有補充・trylock側の残コストが支配するケースがあり、TC/adopt/Active2条件のさらなる調整が有効。

Next

  • A/Bcap8/16 × probes2/3 × drain_max32/64, trigger12を固めてベスト固定→ headtohead 保存。
  • P2: 空ページの即返還/遅延返還スキャベンジでRSS最適。