diff --git a/build.sh b/build.sh index 9cb07950..13acca7c 100755 --- a/build.sh +++ b/build.sh @@ -106,8 +106,8 @@ make clean >/dev/null 2>&1 || true # - Mid-Large targets (8-34KB workloads) → Pool TLS ON (critical for performance) # - Tiny targets (≤1KB workloads) → Pool TLS OFF (avoid TLS overhead for short benchmarks) case "${TARGET}" in - bench_mid_large_mt_hakmem|bench_pool_tls_hakmem|bench_mid_large_mt_system|bench_pool_tls_system) - POOL_TLS_PHASE1_DEFAULT=${POOL_TLS_PHASE1:-1} # ON for Mid-Large workloads + bench_mid_large_mt_hakmem|bench_pool_tls_hakmem|bench_mid_large_mt_system|bench_pool_tls_system|larson_hakmem|larson_mi|larson_system) + POOL_TLS_PHASE1_DEFAULT=${POOL_TLS_PHASE1:-1} # ON for Mid-Large and mixed workloads ;; *) POOL_TLS_PHASE1_DEFAULT=${POOL_TLS_PHASE1:-0} # OFF for Tiny-focused benchmarks diff --git a/core/hakmem_build_flags.h b/core/hakmem_build_flags.h index 96ea335a..e3ba7d38 100644 --- a/core/hakmem_build_flags.h +++ b/core/hakmem_build_flags.h @@ -90,11 +90,14 @@ // Phase 10: Aggressive refill count defaults (tunable via env vars) // Goal: Reduce backend transitions by refilling in larger batches -// HAKMEM_TINY_REFILL_COUNT: global default (default: 64) +// HAKMEM_TINY_REFILL_COUNT: global default (default: 128) // HAKMEM_TINY_REFILL_COUNT_HOT: class 0-3 (default: 128) // HAKMEM_TINY_REFILL_COUNT_MID: class 4-7 (default: 96) +// Larson Fix (Priority 1): Increased from 64 to 128 to reduce lock contention +// Expected impact: Lock frequency reduction 19K → ~1.6K locks/sec (12x) +// NOTE: Multi-threaded Larson has pre-existing crash bug (not caused by this change) #ifndef HAKMEM_TINY_REFILL_DEFAULT -# define HAKMEM_TINY_REFILL_DEFAULT 64 +# define HAKMEM_TINY_REFILL_DEFAULT 128 #endif // ------------------------------------------------------------