問題: - sh8benchでfree(): invalid pointer発生 - header=0xA0だがsuperslab registry未登録のポインタがlibcへ 根本原因: - LRU pop時にhak_super_register()が呼ばれていなかった - hakmem_super_registry.c:hak_ss_lru_pop()の設計不備 修正内容: 1. 根治修正 (core/hakmem_super_registry.c:466) - LRU popしたSuperSlabを明示的にregistry再登録 - hak_super_register((uintptr_t)curr, curr) 追加 - これによりfree時のhak_super_lookup()が成功 2. Self-heal修復 (core/box/hak_wrappers.inc.h:387-436) - Safety net: 未登録SuperSlabを検出して再登録 - mincore()でマッピング確認 + magic検証 - libcへの誤ルート遮断(free()クラッシュ回避) - 詳細デバッグログ追加(HAKMEM_WRAP_DIAG=1) 3. デバッグ指示書追加 (docs/sh8bench_debug_instruction.md) - TLS_SLL_HDR_RESET問題の調査手順 テスト: - cfrac, larson等の他ベンチマークは正常動作確認 - sh8benchのTLS_SLL_HDR_RESET問題は別issue(調査中) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Docs Overview
このフォルダは hakmem の設計・計測・運用メモを体系化して管理する場所です。
- INDEX.md: 目次(各ドキュメントへのリンク)
- benchmarks/: ベンチマーク手順とスイープ結果の保存先
- specs/: 現在の仕様(SACS‑3/HW/ENV)を集約
- roadmap/: これからの実装計画・優先度・タスク
運用ルール(提案)
- 1つの変更/計測のまとまりにつき1ファイル(or 1フォルダ)
- 再現コマンド・環境変数・ハード構成は必ず記載
- 大きな連続出力はファイルへ保存し、本文からは抜粋/要約を記載