|
|
4cc2d8addf
|
sh8bench修正: LRU registry未登録問題 + self-heal修復
問題:
- 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>
|
2025-12-03 09:15:59 +09:00 |
|