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>
35 lines
1.1 KiB
Bash
Executable File
35 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
# A/B for L2.5 TC spill and run factor (10s, Large 4T)
|
|
|
|
ROOT_DIR=$(cd "$(dirname "$0")/.." && pwd)
|
|
LARSON="$ROOT_DIR/mimalloc-bench/bench/larson/larson"
|
|
LIB_HAK="$ROOT_DIR/libhakmem.so"
|
|
|
|
RUNTIME=${RUNTIME:-10}
|
|
THREADS=${THREADS:-4}
|
|
FACTORS=${FACTORS:-"3 4 5"}
|
|
SPILLS=${SPILLS:-"16 32 64"}
|
|
|
|
TS=$(date +%Y%m%d_%H%M%S)
|
|
OUT="$ROOT_DIR/docs/benchmarks/${TS}_L25_TC_AB"
|
|
mkdir -p "$OUT"
|
|
echo "[OUT] $OUT"
|
|
|
|
cd "$ROOT_DIR/mimalloc-bench/bench/larson"
|
|
|
|
for f in $FACTORS; do
|
|
for s in $SPILLS; do
|
|
name="F${f}_S${s}"
|
|
echo "=== $name ===" | tee "$OUT/${name}.log"
|
|
timeout "${BENCH_TIMEOUT:-$((RUNTIME+3))}s" env LD_PRELOAD="$LIB_HAK" HAKMEM_WRAP_L25=1 HAKMEM_L25_PREF=remote HAKMEM_L25_RUN_FACTOR=$f \
|
|
HAKMEM_HDR_LIGHT=2 HAKMEM_L25_TC_SPILL=$s HAKMEM_SHARD_MIX=1 HAKMEM_TLS_LO_MAX=512 \
|
|
"$LARSON" "$RUNTIME" 65536 1048576 10000 1 12345 "$THREADS" 2>&1 | tee -a "$OUT/${name}.log"
|
|
done
|
|
done
|
|
|
|
cd - >/dev/null
|
|
rg -n "Throughput" "$OUT"/*.log | sort -k2,2 -k1,1 | tee "$OUT/summary.txt" || true
|
|
echo "[DONE] Logs at $OUT"
|