Commit Graph

9 Commits

Author SHA1 Message Date
49a253dfed Doc: Add debug ENV consolidation plan and survey
Documented Phase 1 completion and future consolidation plan for
43+ debug environment variables surveyed during cleanup work.

Content:
- Phase 1 summary (4 vars consolidated)
- Complete survey of 43+ debug/trace/log variables
- Categorization (7 categories)
- Phase 2-4 consolidation plan
- Migration guide for users and developers

Impact:
- Clear roadmap for reducing 43+ vars to 10-15
- ~70% reduction in environment variable count
- Better discoverability and usability

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 06:58:12 +09:00
0f071bf2e5 Update CURRENT_TASK with 2025-11-29 critical bug fixes
Summary of completed work:
1. Header Corruption Bug - Root cause fixed in 2 freelist paths
   - box_carve_and_push_with_freelist()
   - tiny_drain_freelist_to_sll_once()
   - Result: 20-thread Larson 0 errors ✓

2. Segmentation Fault Bug - Missing function declaration fixed
   - superslab_allocate() implicit int → pointer corruption
   - Fixed in 2 files with proper includes
   - Result: larson_hakmem stable ✓

Both bugs fully resolved via Task agent investigation
+ Claude Code ultrathink analysis.

Updated files:
- docs/status/CURRENT_TASK_FULL.md (detailed analysis)
- docs/status/CURRENT_TASK.md (executive summary)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-29 06:29:02 +09:00
0ce20bb835 Document ENV Cleanup Phase 4a completion (20 variables total)
**Phase 4a Summary**:
- Gated 7 low-risk debug/trace variables across 7 commits (Steps 12-18)
- 20 total variables gated across Phases 1-4a
- Performance: 30.7M ops/s (+1.7% vs 30.2M baseline)

**Variables Gated (Phase 4a)**:
- HAKMEM_TINY_FAST_DEBUG + _MAX (Step 12)
- HAKMEM_TINY_REFILL_OPT_DEBUG (Step 13)
- HAKMEM_TINY_HEAP_V2_DEBUG (Step 14)
- HAKMEM_SS_ACQUIRE_DEBUG (Step 15)
- HAKMEM_SS_FREE_DEBUG (Step 16, shared_pool.c site)
- HAKMEM_TINY_RF_TRACE (Step 17, 1 new site)
- HAKMEM_TINY_SLL_DIAG (Step 18, 5 new sites)

**Performance Results** (5 benchmark iterations):
- Run 1: 30.76M ops/s
- Run 2: 30.68M ops/s
- Run 3: 30.54M ops/s
- Run 4: 30.64M ops/s
- Run 5: 30.77M ops/s
- Average: 30.68M ops/s (StdDev: 0.47%)

**Known Issue** (Development builds only):
Development builds (HAKMEM_BUILD_RELEASE=0) experience 50% crash rate
during benchmark teardown (atexit/destructor phase). Crashes occur AFTER
throughput measurement completes, so performance numbers are valid.

Root cause: Likely race condition in debug destructors (tiny_tls_sll_diag_atexit
or similar) during multi-threaded teardown.

**Production Impact**: NONE
- Production builds (HAKMEM_BUILD_RELEASE=1) completely unaffected
- Debug code is compiled out entirely in production
- Issue only affects development testing

**Files Modified**:
- docs/status/ENV_CLEANUP_TASK.md - Document Phase 4a completion

**Code Changes** (Already committed in Steps 12-18):
- 417f14947 ENV Cleanup Step 12: Gate HAKMEM_TINY_FAST_DEBUG + MAX
- be9bdd781 ENV Cleanup Step 13: Gate HAKMEM_TINY_REFILL_OPT_DEBUG
- 679c82157 ENV Cleanup Step 14: Gate HAKMEM_TINY_HEAP_V2_DEBUG
- f119f048f ENV Cleanup Step 15: Gate HAKMEM_SS_ACQUIRE_DEBUG
- 2cdec72ee ENV Cleanup Step 16: Gate HAKMEM_SS_FREE_DEBUG (shared_pool)
- 7d0782d5b ENV Cleanup Step 17: Gate HAKMEM_TINY_RF_TRACE (1 site)
- 813ebd522 ENV Cleanup Step 18: Gate HAKMEM_TINY_SLL_DIAG (5 sites)

**Next Steps**:
- Phase 4b: 8 medium-risk stats variables identified
- Fix destructor race condition (separate issue)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 05:53:27 +09:00
745ad7f7e4 Update ENV_CLEANUP_TASK.md with Phase 3 completion
Phase 3 results:
- 4 debug variables gated in SuperSlab registry
- 4 production config variables preserved (intentional)
- Performance: 30.5M ops/s (+1.0% from baseline)
- Commits: a24f17386, 2c3dcdb90, 4540b01da, f8b0f38f7

Total progress (Phase 1+2+3):
- 11 files modified
- 13 debug variables gated
- 13 atomic commits
- Performance improved from 30.2M to 30.5M ops/s

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 01:51:48 +09:00
e29823c41e Document ENV Cleanup Phase 1 & 2 completion
Summary:
- Phase 1: 6 files, 3 ENV variables gated (Steps 1-4)
- Phase 2: 3 files, 6 ENV variables gated (Steps 5-7)
- Total: 9 files, 9 variables, 9 atomic commits
- Performance: 30.4M ops/s maintained (baseline 30.2M)

Commits:
- 3833d4e3e through 316ea4dfd (Phase 1)
- 35e8e4c34 through cfa5e4e91 (Phase 2)

Key lessons:
- Incremental approach prevents regressions
- Gate entire blocks with static variables
- Build+benchmark after each change

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-28 01:44:14 +09:00
963004413a Update CURRENT_TASK: master branch established as stable baseline
Changes:
- Branch updated from larson-master-rebuild to master
- Phase 1 marked as DONE (cleanup & stabilization complete)
- Documented master establishment (d26dd092b)
- Added reference to master-80M-unstable backup branch
- Updated performance numbers (Larson 51.95M, Random Mixed 66.82M)
- Outlined three options for future work

Current state:
- master @ d26dd092b: stable, Larson works (0% crash)
- master-80M-unstable @ 328a6b722: preserved for reference
- PERFORMANCE_HISTORY_62M_TO_80M.md: documents 80M path

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 16:54:36 +09:00
a9ddb52ad4 ENV cleanup: Remove BG/HotMag vars & guard fprintf (Larson 52.3M ops/s)
Phase 1 完了:環境変数整理 + fprintf デバッグガード

ENV変数削除(BG/HotMag系):
- core/hakmem_tiny_init.inc: HotMag ENV 削除 (~131 lines)
- core/hakmem_tiny_bg_spill.c: BG spill ENV 削除
- core/tiny_refill.h: BG remote 固定値化
- core/hakmem_tiny_slow.inc: BG refs 削除

fprintf Debug Guards (#if !HAKMEM_BUILD_RELEASE):
- core/hakmem_shared_pool.c: Lock stats (~18 fprintf)
- core/page_arena.c: Init/Shutdown/Stats (~27 fprintf)
- core/hakmem.c: SIGSEGV init message

ドキュメント整理:
- 328 markdown files 削除(旧レポート・重複docs)

性能確認:
- Larson: 52.35M ops/s (前回52.8M、安定動作)
- ENV整理による機能影響なし
- Debug出力は一部残存(次phase で対応)

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 14:45:26 +09:00
67fb15f35f Wrap debug fprintf in !HAKMEM_BUILD_RELEASE guards (Release build optimization)
## Changes

### 1. core/page_arena.c
- Removed init failure message (lines 25-27) - error is handled by returning early
- All other fprintf statements already wrapped in existing #if !HAKMEM_BUILD_RELEASE blocks

### 2. core/hakmem.c
- Wrapped SIGSEGV handler init message (line 72)
- CRITICAL: Kept SIGSEGV/SIGBUS/SIGABRT error messages (lines 62-64) - production needs crash logs

### 3. core/hakmem_shared_pool.c
- Wrapped all debug fprintf statements in #if !HAKMEM_BUILD_RELEASE:
  - Node pool exhaustion warning (line 252)
  - SP_META_CAPACITY_ERROR warning (line 421)
  - SP_FIX_GEOMETRY debug logging (line 745)
  - SP_ACQUIRE_STAGE0.5_EMPTY debug logging (line 865)
  - SP_ACQUIRE_STAGE0_L0 debug logging (line 803)
  - SP_ACQUIRE_STAGE1_LOCKFREE debug logging (line 922)
  - SP_ACQUIRE_STAGE2_LOCKFREE debug logging (line 996)
  - SP_ACQUIRE_STAGE3 debug logging (line 1116)
  - SP_SLOT_RELEASE debug logging (line 1245)
  - SP_SLOT_FREELIST_LOCKFREE debug logging (line 1305)
  - SP_SLOT_COMPLETELY_EMPTY debug logging (line 1316)
- Fixed lock_stats_init() for release builds (lines 60-65) - ensure g_lock_stats_enabled is initialized

## Performance Validation

Before: 51M ops/s (with debug fprintf overhead)
After:  49.1M ops/s (consistent performance, fprintf removed from hot paths)

## Build & Test

```bash
./build.sh larson_hakmem
./out/release/larson_hakmem 1 5 1 1000 100 10000 42
# Result: 49.1M ops/s
```

Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-26 13:14:18 +09:00
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