# HAKMEM ENV Variable Consolidation - Detailed Mapping ## OBSOLETE Variables - Complete List (54 vars) ### BG (Background) System - 11 vars ``` HAKMEM_BATCH_BG HAKMEM_L25_BG_DRAIN HAKMEM_L25_BG_MS ``` ### SFC (Shared Frontend Cache) - 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 ``` ### HotMag/Ultra/Quick Caches - 12 vars ``` HAKMEM_TINY_FRONT_ENABLE_ULTRAHOT HAKMEM_TINY_QUICK HAKMEM_TINY_ULTRA HAKMEM_TINY_ULTRA_DEBUG HAKMEM_TINY_ULTRA_FRONT HAKMEM_TINY_ULTRA_HEAP_DUMP HAKMEM_TINY_ULTRA_L0 HAKMEM_TINY_ULTRA_PAGE_DUMP HAKMEM_TINY_ULTRA_SIMPLE HAKMEM_TINY_ULTRA_SLIM HAKMEM_TINY_ULTRA_VALIDATE HAKMEM_ULTRA_SLIM_STATS ``` ### Ring System - 7 vars ``` 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 ``` ### Thread Cache (TC) - 4 vars ``` ``` ### BigCache/L25 Experiments - 7 vars ``` 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 ``` ### Frontend Experiments - 13 vars ``` 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 ``` --- ## DEBUG Variables - Complete List (59 vars) ### Tracing - 16 vars ``` HAKMEM_FREE_ROUTE_TRACE HAKMEM_FREE_WRAP_TRACE HAKMEM_PTR_TRACE_DUMP HAKMEM_PTR_TRACE_VERBOSE HAKMEM_SUPER_REG_REQTRACE HAKMEM_TINY_MAILBOX_TRACE HAKMEM_TINY_MAILBOX_TRACE_LIMIT HAKMEM_TINY_RF_TRACE HAKMEM_TINY_SUPERSLAB_TRACE HAKMEM_TINY_TRACE_RING ``` ### Logging - 8 vars ``` HAKMEM_ADAPTIVE_LOG HAKMEM_EXTERNAL_GUARD_LOG HAKMEM_INVALID_FREE_LOG HAKMEM_LOG_FILE HAKMEM_PTR_TRACE_VERBOSE HAKMEM_VERBOSE ``` ### Stats/Profiling - 16 vars ``` HAKMEM_EXTERNAL_GUARD_STATS HAKMEM_POOL_COUNT_SAMPLE HAKMEM_PROF_SAMPLE 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 HAKMEM_TINY_HEAP_V2_STATS HAKMEM_ULTRA_SLIM_STATS ``` ### Debug/Observe - 19 vars ``` HAKMEM_ACE_DEBUG HAKMEM_ACE_OBSERVE HAKMEM_DEBUG_SEGV 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 HAKMEM_TINY_FAST_DEBUG HAKMEM_TINY_FAST_DEBUG_MAX ``` --- ## POLICY Variables - Consolidation Proposals ### Proposal 1: Refill Parameters **Remove (18 vars)**: ``` 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 ``` **Replace with (3 vars)**: ``` HAKMEM_REFILL_BATCH=64 # Default refill batch size HAKMEM_REFILL_HOT_BATCH=192 # Hot class (C0-C3) batch size HAKMEM_REFILL_MAX=1024 # Maximum refill per operation ``` ### Proposal 2: Capacity Limits **Remove (30+ vars including per-class)**: ``` 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_MAG_CAP HAKMEM_TINY_MAX_CLASS HAKMEM_TINY_REFILL_MAX_HOT HAKMEM_TINY_SS_MAX_MB HAKMEM_TINY_SS_MIN_MB ...(30+ total) ``` **Replace with (6 vars)**: ``` HAKMEM_CACHE_PRESET=small|medium|large|custom # Global preset HAKMEM_TINY_CACHE_SLOTS=512 # TLS cache capacity (if custom) HAKMEM_MID_CACHE_SLOTS=128 # Mid-tier cache (if custom) HAKMEM_LARGE_CACHE_SLOTS=32 # Large-tier cache (if custom) HAKMEM_SS_MEMORY_LIMIT_MB=512 # SuperSlab memory cap HAKMEM_POOL_MEMORY_LIMIT_MB=256 # Pool memory cap ``` **Presets**: ``` small: Tiny=256, Mid=64, Large=16, SS=256MB, Pool=128MB medium: Tiny=512, Mid=128, Large=32, SS=512MB, Pool=256MB (default) large: Tiny=1024, Mid=256, Large=64, SS=1024MB, Pool=512MB custom: Use individual *_SLOTS/*_LIMIT_MB vars ``` ### Proposal 3: Learning/Adaptation Systems **Remove (35 vars)**: ``` 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_HOT_SLOT HAKMEM_INT_ADAPT_CAPS HAKMEM_INT_ADAPT_REFILL HAKMEM_INT_ENGINE HAKMEM_INT_EVENT_TS HAKMEM_INT_SAMPLE HAKMEM_LEARN HAKMEM_LEARN_SAMPLE HAKMEM_MID_DYN1 HAKMEM_MID_DYN2 HAKMEM_PTR_TRACE_DUMP HAKMEM_PTR_TRACE_VERBOSE HAKMEM_THP_LEARN ...(35 total) ``` **Replace with (8 vars)**: ``` HAKMEM_ADAPTIVE_MODE=off|observe|active # Master switch HAKMEM_ADAPTIVE_TARGETS=caps,refill,wmax,thp # Comma-separated targets HAKMEM_ADAPTIVE_INTERVAL_MS=1000 # Update interval HAKMEM_ADAPTIVE_AGGRESSIVENESS=0.1 # Learning rate (0.0-1.0) HAKMEM_ADAPTIVE_MIN_CHANGE_PCT=5 # Minimum % change to apply HAKMEM_THP_POLICY=off|auto|on # THP policy HAKMEM_WMAX_MID_KB=256 # Mid-tier working set HAKMEM_WMAX_LARGE_KB=2048 # Large-tier working set ``` ### Proposal 4: Drain/Threshold Parameters **Remove (20 vars)**: ``` 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 ``` **Replace with (5 vars)**: ``` HAKMEM_REMOTE_DRAIN_THRESHOLD=32 # Queue size to trigger drain HAKMEM_REMOTE_DRAIN_BATCH=16 # Items per drain operation HAKMEM_CACHE_SPILL_PCT=90 # % full to trigger spill HAKMEM_MEMORY_TRIM_INTERVAL_MS=1000 # Trim check interval HAKMEM_IDLE_TIMEOUT_MS=5000 # Idle detection timeout ``` ### Proposal 5: L25/Pool Configuration **Remove (15 vars)**: ``` HAKMEM_L25_DZ HAKMEM_L25_INBOUND_SLOTS HAKMEM_L25_MIN_BUNDLE HAKMEM_L25_OWNER_INBOUND HAKMEM_L25_PREF HAKMEM_L25_REMOTE_SAFE HAKMEM_L25_RUN_BLOCKS HAKMEM_L25_RUN_FACTOR HAKMEM_MID_TC HAKMEM_POOL_MIN_BUNDLE HAKMEM_SHARED_POOL_LOCK_STATS HAKMEM_SHARED_POOL_STAGE_STATS ``` **Replace with (5 vars)**: ``` HAKMEM_L25_SIZE_ZONES="64,256,1024" # Comma-separated size zones HAKMEM_L25_BUNDLE_SIZE=4 # Refill bundle size HAKMEM_MID_BUNDLE_SIZE=4 # Mid-tier bundle size HAKMEM_L25_RUN_BLOCKS=16 # Blocks per run HAKMEM_L25_RUN_FACTOR=2 # Run factor multiplier ``` ### Proposal 6: Misc Policy Variables **Remove (36 vars)**: ``` HAKMEM_ACE_ENABLED HAKMEM_ALLOW_MALLOC_FALLBACK HAKMEM_BENCH_FAST_FRONT HAKMEM_BENCH_FAST_MODE HAKMEM_BENCH_TINY_ONLY HAKMEM_BIGCACHE_L25 HAKMEM_DISABLE_BATCH HAKMEM_DISABLE_BIGCACHE HAKMEM_DISABLE_ELO HAKMEM_EXTERNAL_GUARD_LOG HAKMEM_EXTERNAL_GUARD_MINCORE HAKMEM_EXTERNAL_GUARD_STATS HAKMEM_FREE_POLICY HAKMEM_FREE_ROUTE_TRACE HAKMEM_HDR_LIGHT HAKMEM_INVALID_FREE HAKMEM_INVALID_FREE_LOG HAKMEM_L25_REMOTE_SAFE HAKMEM_L25_TC_SPILL HAKMEM_LD_BLOCK_JEMALLOC HAKMEM_LD_SAFE HAKMEM_MF2_ENABLE HAKMEM_MF2_IDLE_THRESHOLD_US HAKMEM_MF2_LEASE_MS HAKMEM_MF2_MAX_QUEUES HAKMEM_MODE HAKMEM_PAGE_ARENA_ENABLE HAKMEM_PRESET HAKMEM_ROUTE HAKMEM_ROUTE_SAMPLE_LG ...(36 total) ``` **Replace with (4 vars)**: ``` HAKMEM_MODE=fast|balanced|learning|minimal # High-level preset HAKMEM_FORCE_LIBC=0|1 # Force libc malloc fallback HAKMEM_THP_POLICY=off|auto|on # THP policy (from Proposal 3) HAKMEM_RSS_BUDGET_KB=unlimited # Total RSS budget ``` --- ## Final 50 Variables (20 Essential + 30 Policy) ### Essential (20 vars) ``` # Core Features (8) HAKMEM_WRAP_TINY=1 HAKMEM_TINY_USE_SUPERSLAB=1 HAKMEM_TINY_TLS_SLL=1 HAKMEM_TINY_FREE_FAST=1 HAKMEM_TINY_UNIFIED_CACHE=1 HAKMEM_SS_EMPTY_REUSE=1 HAKMEM_FRONT_GATE_UNIFIED=1 HAKMEM_POOL_TLS_FREE=1 # Pool TLS Arena (3) HAKMEM_POOL_TLS_ARENA_MB_INIT=1 HAKMEM_POOL_TLS_ARENA_MB_MAX=8 HAKMEM_POOL_TLS_ARENA_GROWTH_LEVELS=3 # Page Arena (5) HAKMEM_PAGE_ARENA_ENABLE=1 HAKMEM_PAGE_ARENA_HOT_SIZE=... HAKMEM_PAGE_ARENA_WARM_64K=... HAKMEM_PAGE_ARENA_WARM_128K=... HAKMEM_PAGE_ARENA_WARM_2M=... # Misc (4) HAKMEM_PREWARM_SUPERSLABS=1 HAKMEM_TINY_PREWARM_ALL=1 HAKMEM_WRAP_TINY_REFILL=1 HAKMEM_SMALLMID_ENABLE=1 ``` ### Policy (30 vars) ``` # Refill (3) HAKMEM_REFILL_BATCH=64 HAKMEM_REFILL_HOT_BATCH=192 HAKMEM_REFILL_MAX=1024 # Capacity (6) HAKMEM_CACHE_PRESET=medium HAKMEM_TINY_CACHE_SLOTS=512 HAKMEM_MID_CACHE_SLOTS=128 HAKMEM_LARGE_CACHE_SLOTS=32 HAKMEM_SS_MEMORY_LIMIT_MB=512 HAKMEM_POOL_MEMORY_LIMIT_MB=256 # Adaptive (8) HAKMEM_ADAPTIVE_MODE=off HAKMEM_ADAPTIVE_TARGETS=caps,refill,wmax HAKMEM_ADAPTIVE_INTERVAL_MS=1000 HAKMEM_ADAPTIVE_AGGRESSIVENESS=0.1 HAKMEM_ADAPTIVE_MIN_CHANGE_PCT=5 HAKMEM_THP_POLICY=auto HAKMEM_WMAX_MID_KB=256 HAKMEM_WMAX_LARGE_KB=2048 # Drain/Threshold (5) HAKMEM_REMOTE_DRAIN_THRESHOLD=32 HAKMEM_REMOTE_DRAIN_BATCH=16 HAKMEM_CACHE_SPILL_PCT=90 HAKMEM_MEMORY_TRIM_INTERVAL_MS=1000 HAKMEM_IDLE_TIMEOUT_MS=5000 # L25/Pool (5) HAKMEM_L25_SIZE_ZONES=64,256,1024 HAKMEM_L25_BUNDLE_SIZE=4 HAKMEM_MID_BUNDLE_SIZE=4 HAKMEM_L25_RUN_BLOCKS=16 HAKMEM_L25_RUN_FACTOR=2 # Global (3) HAKMEM_MODE=balanced HAKMEM_FORCE_LIBC=0 HAKMEM_RSS_BUDGET_KB=unlimited ``` --- ## Migration Guide Examples ### Example 1: Refill Migration ```bash # OLD (18 vars) export HAKMEM_TINY_REFILL_MAX=64 export HAKMEM_TINY_REFILL_MAX_HOT=192 export HAKMEM_TINY_REFILL_COUNT=32 export HAKMEM_TINY_REFILL_COUNT_HOT=96 export HAKMEM_TINY_REFILL_COUNT_MID=48 # ... 13 more ... # NEW (3 vars) export HAKMEM_REFILL_BATCH=64 # Replaces *_COUNT export HAKMEM_REFILL_HOT_BATCH=192 # Replaces *_HOT export HAKMEM_REFILL_MAX=1024 # Replaces *_MAX ``` ### Example 2: Capacity Migration ```bash # OLD (30+ vars) export HAKMEM_TINY_MAG_CAP=512 export HAKMEM_TINY_MAG_CAP_C0=256 export HAKMEM_TINY_MAG_CAP_C1=256 # ... 27 more ... # NEW (1 var for most cases) export HAKMEM_CACHE_PRESET=medium # Tiny=512, Mid=128, Large=32 # OR (6 vars for custom) export HAKMEM_CACHE_PRESET=custom export HAKMEM_TINY_CACHE_SLOTS=512 export HAKMEM_MID_CACHE_SLOTS=128 export HAKMEM_LARGE_CACHE_SLOTS=32 export HAKMEM_SS_MEMORY_LIMIT_MB=512 export HAKMEM_POOL_MEMORY_LIMIT_MB=256 ``` ### Example 3: Learning Migration ```bash # OLD (35 vars) export HAKMEM_ACE_ENABLED=1 export HAKMEM_INT_ENGINE=1 export HAKMEM_INT_ADAPT_REFILL=1 export HAKMEM_INT_ADAPT_CAPS=1 export HAKMEM_WMAX_LEARN=1 # ... 30 more ... # NEW (4 vars for most cases) export HAKMEM_ADAPTIVE_MODE=active export HAKMEM_ADAPTIVE_TARGETS=caps,refill,wmax export HAKMEM_ADAPTIVE_INTERVAL_MS=1000 export HAKMEM_ADAPTIVE_AGGRESSIVENESS=0.1 ```