Updated documentation to reflect commit 6b791b97d deletions:
Removed ENV variables (6):
- HAKMEM_TINY_ULTRA_FRONT
- HAKMEM_TINY_ULTRA_L0
- HAKMEM_TINY_ULTRA_HEAP_DUMP
- HAKMEM_TINY_ULTRA_PAGE_DUMP
- HAKMEM_TINY_BG_REMOTE (no getenv, dead code)
- HAKMEM_TINY_BG_REMOTE_BATCH (no getenv, dead code)
Files updated (5):
- docs/analysis/ENV_CLEANUP_ANALYSIS.md: Updated BG/Ultra counts
- docs/analysis/ENV_QUICK_REFERENCE.md: Updated verification sections
- docs/analysis/ENV_CLEANUP_PLAN.md: Added REMOVED category
- docs/archive/TINY_LEARNING_LAYER.md: Added archive notice
- docs/archive/MAINLINE_INTEGRATION.md: Added archive notice
Changes: +71/-32 lines
Preserved ENV variables:
- HAKMEM_TINY_ULTRA_SLIM (active 4-layer fast path)
- HAKMEM_ULTRA_SLIM_STATS (Ultra SLIM statistics)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
13 KiB
HAKMEM ENV Variables - Comprehensive Cleanup Analysis
Total Variables: 282 → Target: <50
Generated: 2025年 11月 26日 水曜日 16:58:53 JST
Executive Summary
| Category | Count | Percentage | Action |
|---|---|---|---|
| OBSOLETE | 54 | 19% | REMOVE (defunct features) |
| DEBUG | 59 | 21% | GATE (#if !HAKMEM_BUILD_RELEASE) |
| ESSENTIAL | 20 | 7% | KEEP (core functionality) |
| POLICY | 149 | 53% | CONSOLIDATE (reduce to ~30) |
Reduction Path: 282 → 113 (remove obsolete) → 54 (gate debug) → ~50 (consolidate policy)
Category 1: OBSOLETE (54 vars - REMOVE)
These variables control removed/deprecated features and should be deleted:
1.1 Background Processing (BG) - 9 vars
Status: BG system removed in 2025-12 cleanup
HAKMEM_BATCH_BG
HAKMEM_L25_BG_DRAIN
HAKMEM_L25_BG_MS
Note: The following 2 Tiny BG vars were removed in commit 6b791b97d (2025-11-26):
HAKMEM_TINY_BG_REMOTE (deleted)
HAKMEM_TINY_BG_REMOTE_BATCH (deleted)
1.2 SFC (Shared Frontend Cache) - 7 vars
Status: SFC removed, replaced by UNIFIED_CACHE
HAKMEM_SFC_CAPACITY
HAKMEM_SFC_CASCADE_PCT
HAKMEM_SFC_DEBUG
HAKMEM_SFC_ENABLE
HAKMEM_SFC_REFILL_COUNT
HAKMEM_SFC_STATS_DUMP
HAKMEM_TINY_SFC_CASCADE
1.3 HotMag/UltraHot/Quick - 4 vars
Status: Experimental caches removed
HAKMEM_TINY_QUICK
HAKMEM_TINY_ULTRA
HAKMEM_TINY_ULTRA_VALIDATE
HAKMEM_TINY_ULTRA_SLIM
Note: The following 6 vars were removed in commit 6b791b97d (2025-11-26):
HAKMEM_TINY_ULTRA_FRONT (deleted)
HAKMEM_TINY_ULTRA_L0 (deleted)
HAKMEM_TINY_ULTRA_HEAP_DUMP (deleted)
HAKMEM_TINY_ULTRA_PAGE_DUMP (deleted)
HAKMEM_TINY_BG_REMOTE (deleted)
HAKMEM_TINY_BG_REMOTE_BATCH (deleted)
1.4 Ring Cache - 4 vars
Status: Ring system removed
HAKMEM_L25_RING_TRIGGER
HAKMEM_POOL_TLS_RING
HAKMEM_RING_RETURN_DIV
HAKMEM_TINY_ALLOC_RING
HAKMEM_TINY_DUMP_RING_ATEXIT
HAKMEM_TINY_SLL_RING
HAKMEM_TINY_TRACE_RING
1.5 Thread Cache (TC) - 4 vars
Status: TC system deprecated
1.6 L25 BigCache - 8 vars
Status: BigCache system removed
HAKMEM_BIGCACHE_L25
HAKMEM_DISABLE_BIGCACHE
HAKMEM_L25_BG_DRAIN
HAKMEM_L25_BG_MS
HAKMEM_L25_RING_TRIGGER
HAKMEM_L25_TC_CAP
HAKMEM_L25_TC_SPILL
1.7 Frontend Experiments - 10 vars
Status: Experimental frontends (V2, Heap, Slim) removed
HAKMEM_TINY_FASTCACHE
HAKMEM_TINY_FRONTEND
HAKMEM_TINY_FRONT_DISABLE_HEAPV2
HAKMEM_TINY_FRONT_ENABLE_ULTRAHOT
HAKMEM_TINY_FRONT_SLIM
HAKMEM_TINY_FRONT_V2
HAKMEM_TINY_HEAP_V2_CLASS_MASK
HAKMEM_TINY_HEAP_V2_DEBUG
HAKMEM_TINY_HEAP_V2_LEFTOVER_MODE
HAKMEM_TINY_HEAP_V2_STATS
Category 2: DEBUG_ONLY (59 vars - COMPILE-TIME GATE)
These should be gated with #if !HAKMEM_BUILD_RELEASE and removed from production:
2.1 Tracing/Logging - 20 vars
HAKMEM_ADAPTIVE_LOG
HAKMEM_EXTERNAL_GUARD_LOG
HAKMEM_FREE_ROUTE_TRACE
HAKMEM_FREE_WRAP_TRACE
HAKMEM_INVALID_FREE_LOG
HAKMEM_LOG_FILE
HAKMEM_PTR_TRACE_DUMP
HAKMEM_PTR_TRACE_VERBOSE
HAKMEM_SUPER_REG_REQTRACE
HAKMEM_TIMING
HAKMEM_TINY_MAILBOX_TRACE
HAKMEM_TINY_MAILBOX_TRACE_LIMIT
HAKMEM_TINY_RF_TRACE
HAKMEM_TINY_SUPERSLAB_TRACE
HAKMEM_TINY_TRACE_RING
HAKMEM_VERBOSE
2.2 Statistics/Profiling - 18 vars
HAKMEM_ACE_PROFILE
HAKMEM_ACE_SAMPLE
HAKMEM_EVO_SAMPLE
HAKMEM_EXTERNAL_GUARD_STATS
HAKMEM_HIST_SAMPLE
HAKMEM_INT_SAMPLE
HAKMEM_LEARN_SAMPLE
HAKMEM_POOL_COUNT_SAMPLE
HAKMEM_PROF
HAKMEM_PROF_SAMPLE
HAKMEM_ROUTE_SAMPLE_LG
HAKMEM_SFC_STATS_DUMP
HAKMEM_SHARED_POOL_LOCK_STATS
HAKMEM_SHARED_POOL_STAGE_STATS
HAKMEM_TINY_ALLOC_1024_METRIC
HAKMEM_TINY_COUNT_SAMPLE
HAKMEM_TINY_FAST_STATS
HAKMEM_TINY_FRONT_METRICS
2.3 Debug/Validation - 21 vars
HAKMEM_ACE_DEBUG
HAKMEM_ACE_OBSERVE
HAKMEM_DEBUG_SEGV
HAKMEM_EXTERNAL_GUARD_LOG
HAKMEM_EXTERNAL_GUARD_MINCORE
HAKMEM_EXTERNAL_GUARD_STATS
HAKMEM_PTR_TRACE_DUMP
HAKMEM_SFC_DEBUG
HAKMEM_SFC_STATS_DUMP
HAKMEM_SS_ACQUIRE_DEBUG
HAKMEM_SS_FREE_DEBUG
HAKMEM_SS_LRU_DEBUG
HAKMEM_SS_PREWARM_DEBUG
HAKMEM_SUPER_LOOKUP_DEBUG
HAKMEM_SUPER_REG_DEBUG
HAKMEM_TINY_ALLOC_DEBUG
HAKMEM_TINY_COUNTERS_DUMP
HAKMEM_TINY_DEBUG_FAST0
HAKMEM_TINY_DEBUG_REMOTE_GUARD
HAKMEM_TINY_DUMP_ATEXIT_ONLY
HAKMEM_TINY_DUMP_RING_ATEXIT
Category 3: ESSENTIAL (20 vars - KEEP)
Core functionality that must remain:
3.1 Major Features (8 vars)
HAKMEM_TINY_UNIFIED_CACHE=1 # Phase 3d-B (default ON)
HAKMEM_SS_EMPTY_REUSE=1 # Phase 12-1.1 (default ON)
HAKMEM_FRONT_GATE_UNIFIED=1 # Phase 26 (default ON)
HAKMEM_WRAP_TINY=1 # Enable Tiny Pool
HAKMEM_TINY_USE_SUPERSLAB=1 # SuperSlab backend
HAKMEM_TINY_TLS_SLL=1 # TLS cache layer
HAKMEM_TINY_FREE_FAST=1 # Fast free path
HAKMEM_POOL_TLS_FREE=1 # Pool TLS free
3.2 Pool TLS Arena (3 vars)
HAKMEM_POOL_TLS_ARENA_MB_INIT=1 # Initial arena size
HAKMEM_POOL_TLS_ARENA_MB_MAX=8 # Max arena size
HAKMEM_POOL_TLS_ARENA_GROWTH_LEVELS=3 # Growth stages
3.3 Page Arena (5 vars)
HAKMEM_PAGE_ARENA_ENABLE=1 # Page arena system
HAKMEM_PAGE_ARENA_HOT_SIZE=... # Hot size threshold
HAKMEM_PAGE_ARENA_WARM_64K=... # Warm level 1
HAKMEM_PAGE_ARENA_WARM_128K=... # Warm level 2
HAKMEM_PAGE_ARENA_WARM_2M=... # Warm level 3
3.4 Misc Essential (4 vars)
HAKMEM_PREWARM_SUPERSLABS=1 # Phase 11 prewarm
HAKMEM_TINY_PREWARM_ALL=1 # Full prewarm
HAKMEM_WRAP_TINY_REFILL=1 # Wrapper refill
HAKMEM_SMALLMID_ENABLE=1 # SmallMid allocator
Category 4: POLICY (149 vars - CONSOLIDATE to ~30)
4.1 Duplicate/Similar Functionality
Refill Parameters (18 vars → 3 vars)
Current:
HAKMEM_INT_ADAPT_REFILL
HAKMEM_SFC_REFILL_COUNT
HAKMEM_TINY_MID_REFILL_SIMPLE
HAKMEM_TINY_REFILL_COUNT
HAKMEM_TINY_REFILL_COUNT_HOT
HAKMEM_TINY_REFILL_COUNT_MID
HAKMEM_TINY_REFILL_DUMP
HAKMEM_TINY_REFILL_FAILFAST
HAKMEM_TINY_REFILL_MAX
HAKMEM_TINY_REFILL_MAX_HOT
HAKMEM_TINY_REFILL_ONE_ON_MISS
HAKMEM_TINY_REFILL_OPT_DEBUG
HAKMEM_WRAP_TINY_REFILL
Proposal: Consolidate to:
HAKMEM_TINY_REFILL_BATCH=64 # Default batch size
HAKMEM_TINY_REFILL_HOT_BATCH=192 # Hot class batch
HAKMEM_TINY_REFILL_MAX=1024 # Global max
Capacity Parameters (25 vars → 5 vars)
Current:
HAKMEM_CAP_LARGE
HAKMEM_CAP_MID
HAKMEM_CAP_MID_DYN1
HAKMEM_CAP_MID_DYN2
HAKMEM_L25_MIN_BUNDLE
HAKMEM_MF2_MAX_QUEUES
HAKMEM_POOL_MIN_BUNDLE
HAKMEM_SUPERSLAB_MAX_CACHED
HAKMEM_SUPERSLAB_MAX_MEMORY_MB
HAKMEM_TINY_MAX_CLASS
HAKMEM_TINY_REFILL_MAX_HOT
HAKMEM_TINY_SS_MAX_MB
HAKMEM_TINY_SS_MIN_MB
...(25 total)
Proposal: Use tiered approach:
HAKMEM_TINY_CACHE_SIZE=small|medium|large # Preset
HAKMEM_MID_CACHE_SIZE=small|medium|large
HAKMEM_LARGE_CACHE_SIZE=small|medium|large
HAKMEM_SS_MEMORY_LIMIT_MB=512 # Global limit
HAKMEM_POOL_MEMORY_LIMIT_MB=256 # Pool limit
Learning/Adaptation (35 vars → 8 vars)
Current: ACE, INT, WMAX, THP, ELO, LEARN, ADAPTIVE, HOT, DYN systems
HAKMEM_ACE_DEBUG
HAKMEM_ACE_ENABLED
HAKMEM_ACE_OBSERVE
HAKMEM_ACE_PROFILE
HAKMEM_ACE_SAMPLE
HAKMEM_ADAPTIVE_LOG
HAKMEM_ADAPTIVE_SIZING
HAKMEM_CAP_MID_DYN1
HAKMEM_CAP_MID_DYN2
HAKMEM_DISABLE_ELO
HAKMEM_DYN1_AUTO
HAKMEM_DYN2_AUTO
HAKMEM_INT_ADAPT_CAPS
HAKMEM_INT_ADAPT_REFILL
HAKMEM_INT_ENGINE
...(35 total)
Proposal: Unified learning system:
HAKMEM_LEARN_MODE=off|observe|active # Master switch
HAKMEM_LEARN_TARGETS=caps,refill,wmax # What to tune
HAKMEM_LEARN_INTERVAL_MS=1000 # Update rate
HAKMEM_LEARN_AGGRESSIVENESS=0.1 # Tuning rate
HAKMEM_THP_POLICY=off|auto|on # THP
HAKMEM_ADAPTIVE_CAPS=1 # Enable cap adaptation
HAKMEM_ADAPTIVE_REFILL=1 # Enable refill adaptation
HAKMEM_ADAPTIVE_WMAX=1 # Enable wmax adaptation
Drain/Threshold Parameters (20 vars → 5 vars)
Current:
HAKMEM_L25_BG_DRAIN
HAKMEM_L25_RING_TRIGGER
HAKMEM_MF2_IDLE_THRESHOLD_US
HAKMEM_TC_DRAIN_MAX
HAKMEM_TC_DRAIN_TRIGGER
HAKMEM_TINY_DRAIN_TO_SLL
HAKMEM_TINY_REMOTE_DRAIN_THRESHOLD
HAKMEM_TINY_REMOTE_DRAIN_TRYRATE
HAKMEM_TINY_SLL_DRAIN_DEBUG
HAKMEM_TINY_SLL_DRAIN_ENABLE
HAKMEM_TINY_SLL_DRAIN_INTERVAL
HAKMEM_TINY_TENSION_DRAIN_ENABLE
HAKMEM_TINY_TENSION_DRAIN_THRESHOLD
...(20 total)
Proposal: Unified thresholds:
HAKMEM_REMOTE_DRAIN_THRESHOLD=32 # When to drain
HAKMEM_REMOTE_DRAIN_BATCH=16 # Drain batch size
HAKMEM_SPILL_THRESHOLD_PCT=90 # Cache spill %
HAKMEM_TRIM_INTERVAL_MS=1000 # Memory trim rate
HAKMEM_IDLE_TIMEOUT_MS=5000 # Idle detection
4.2 Recommended Consolidation Summary
| Area | Current | Proposed | Reduction |
|---|---|---|---|
| Refill params | 18 | 3 | -83% |
| Capacity params | 25 | 5 | -80% |
| Learning/Adapt | 35 | 8 | -77% |
| Drain/Threshold | 20 | 5 | -75% |
| L25/Pool config | 15 | 5 | -67% |
| Misc policy | 36 | 4 | -89% |
| TOTAL | 149 | 30 | -80% |
Final Reduction Path
Step 1: Remove OBSOLETE 282 → 228 (-54)
Step 2: Gate DEBUG with #if 228 → 169 (-59)
Step 3: Keep ESSENTIAL as-is 169 → 149 (-20)
Step 4: Consolidate POLICY 149 → 30 (-119)
FINAL COUNT: 20 (essential) + 30 (policy) = 50 variables
Top Removal Candidates (By Priority)
Priority 1: Dead Code (Immediate Removal) - 54 vars
BG System (11 vars):
HAKMEM_L25_BG_DRAIN
HAKMEM_L25_BG_MS
SFC System (7 vars):
HAKMEM_SFC_CAPACITY
HAKMEM_SFC_CASCADE_PCT
HAKMEM_SFC_DEBUG
HAKMEM_SFC_ENABLE
HAKMEM_SFC_REFILL_COUNT
HAKMEM_SFC_STATS_DUMP
HAKMEM_TINY_SFC_CASCADE
Experimental Caches (4 vars):
HAKMEM_TINY_QUICK
HAKMEM_TINY_ULTRA
HAKMEM_TINY_ULTRA_VALIDATE
HAKMEM_TINY_ULTRA_SLIM
Note: 6 Ultra/BG vars removed in commit 6b791b97d (see section 1.3 above)
Ring/TC/Frontend (18 vars):
HAKMEM_L25_RING_TRIGGER
HAKMEM_L25_TC_CAP
HAKMEM_L25_TC_SPILL
HAKMEM_MID_TC_CAP
HAKMEM_POOL_TLS_RING
HAKMEM_RING_RETURN_DIV
HAKMEM_TC_DRAIN_MAX
HAKMEM_TC_DRAIN_TRIGGER
HAKMEM_TC_ENABLE
HAKMEM_TC_UNBOUNDED
HAKMEM_TINY_ALLOC_RING
HAKMEM_TINY_DUMP_RING_ATEXIT
HAKMEM_TINY_FASTCACHE
HAKMEM_TINY_FRONT_V2
HAKMEM_TINY_HEAP_V2_CLASS_MASK
HAKMEM_TINY_HEAP_V2_DEBUG
HAKMEM_TINY_HEAP_V2_LEFTOVER_MODE
HAKMEM_TINY_HEAP_V2_STATS
Priority 2: Debug Gate (Next Phase) - 59 vars
Move to #if !HAKMEM_BUILD_RELEASE block:
HAKMEM_ACE_DEBUG
HAKMEM_ACE_OBSERVE
HAKMEM_ACE_PROFILE
HAKMEM_ADAPTIVE_LOG
HAKMEM_DEBUG_SEGV
HAKMEM_EXTERNAL_GUARD_LOG
HAKMEM_EXTERNAL_GUARD_MINCORE
HAKMEM_EXTERNAL_GUARD_STATS
HAKMEM_FREE_ROUTE_TRACE
HAKMEM_FREE_WRAP_TRACE
HAKMEM_INVALID_FREE_LOG
HAKMEM_LOG_FILE
HAKMEM_PROF
HAKMEM_PROF_SAMPLE
HAKMEM_PTR_TRACE_DUMP
HAKMEM_PTR_TRACE_VERBOSE
HAKMEM_SFC_DEBUG
HAKMEM_SFC_STATS_DUMP
HAKMEM_SHARED_POOL_LOCK_STATS
HAKMEM_SHARED_POOL_STAGE_STATS
HAKMEM_SS_ACQUIRE_DEBUG
HAKMEM_SS_FREE_DEBUG
HAKMEM_SS_LRU_DEBUG
HAKMEM_SS_PREWARM_DEBUG
HAKMEM_SUPER_LOOKUP_DEBUG
HAKMEM_SUPER_REG_DEBUG
HAKMEM_SUPER_REG_REQTRACE
HAKMEM_TINY_ALLOC_DEBUG
HAKMEM_TINY_COUNTERS_DUMP
HAKMEM_TINY_DEBUG_FAST0
...(59 total)
Priority 3: Policy Consolidation (Final Phase) - 119 vars
High-impact consolidation targets:
- Per-class overrides (30+ vars): Remove HAKMEM_TINY_*_C{0..7}, use class-agnostic tuning
- Learning systems (35 vars): Unify ACE/INT/WMAX/ELO into HAKMEM_LEARN_*
- Capacity limits (25 vars): Use tiered presets (small/medium/large)
- Drain thresholds (20 vars): Unify under HAKMEM_DRAIN_* namespace
Undocumented Variables
Variables in code but not in ENV_VARS.md:
(Run: comm -13 <(grep -o 'HAKMEM_[A-Z_0-9]*' ENV_VARS.md | sort -u) <(grep -rh 'getenv("HAKMEM_' core/ | grep -o 'HAKMEM_[A-Z_0-9]*' | sort -u))
Recommended Actions
Phase 1: Remove OBSOLETE (Week 1)
- Remove all BG system ENV vars (11 vars)
- Remove all SFC system ENV vars (7 vars)
- Remove HotMag/Ultra/Quick ENV vars (10 vars)
- Remove Ring/TC ENV vars (8 vars)
- Remove experimental frontend ENV vars (18 vars)
- Result: 282 → 228 vars (-19%)
Phase 2: Gate DEBUG (Week 2)
- Create
core/hakmem_debug_env.hwith #if !HAKMEM_BUILD_RELEASE - Move all *_DEBUG, *_TRACE, *_STATS, *_DUMP vars
- Move all *_LOG, *_PROF, *_OBSERVE vars
- Update build.sh to strip debug ENV in release
- Result: 228 → 169 vars (-21% production)
Phase 3: Consolidate POLICY (Week 3-4)
- Consolidate REFILL_* params (18 → 3)
- Consolidate CAP_/MAX_/MIN_ params (25 → 5)
- Unify learning systems (35 → 8)
- Consolidate drain thresholds (20 → 5)
- Simplify L25/Pool config (15 → 5)
- Merge misc policy vars (36 → 4)
- Result: 169 → 50 vars (-82% total)
Phase 4: Document & Test (Week 5)
- Update ENV_VARS.md with final 50 vars
- Create ENV_MIGRATION_GUIDE.md for old→new mapping
- Add ENV validation warnings for removed vars
- Regression test all 50 vars
- Update CLAUDE.md with new ENV list