48 lines
2.0 KiB
Bash
48 lines
2.0 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
# Single-run OBSERVE helper for "is the path actually executed?" checks.
|
||
|
|
#
|
||
|
|
# This script is intentionally NOT a throughput SSOT runner.
|
||
|
|
# It is a pre-flight: verify route/banner + per-class counters + stats are non-zero.
|
||
|
|
#
|
||
|
|
# Usage:
|
||
|
|
# ./scripts/run_mixed_observe_ssot.sh
|
||
|
|
# WS=400 ITERS=20000000 ./scripts/run_mixed_observe_ssot.sh
|
||
|
|
#
|
||
|
|
# Requires: `make bench_random_mixed_hakmem_observe`
|
||
|
|
|
||
|
|
profile=${HAKMEM_PROFILE:-MIXED_TINYV3_C7_SAFE}
|
||
|
|
iters=${ITERS:-20000000}
|
||
|
|
ws=${WS:-400}
|
||
|
|
bin=${BENCH_BIN:-./bench_random_mixed_hakmem_observe}
|
||
|
|
|
||
|
|
# SSOT header: bin sha / profile / iters / ws
|
||
|
|
echo "[SSOT-HEADER] bin=$(sha256sum "${bin}" | cut -c1-8) profile=${profile} iters=${iters} ws=${ws} mode=OBSERVE"
|
||
|
|
|
||
|
|
# Force the same size range as SSOT to avoid class distribution drift.
|
||
|
|
export HAKMEM_BENCH_MIN_SIZE=${SSOT_MIN_SIZE:-16}
|
||
|
|
export HAKMEM_BENCH_MAX_SIZE=${SSOT_MAX_SIZE:-1040}
|
||
|
|
export HAKMEM_BENCH_C5_ONLY=0
|
||
|
|
export HAKMEM_BENCH_C6_ONLY=0
|
||
|
|
export HAKMEM_BENCH_C7_ONLY=0
|
||
|
|
|
||
|
|
# One-shot route configuration banner (Phase 70-1).
|
||
|
|
export HAKMEM_ROUTE_BANNER=1
|
||
|
|
|
||
|
|
# Keep cleanenv defaults aligned with the main runner for knobs that affect control flow.
|
||
|
|
export HAKMEM_WARM_POOL_SIZE=${HAKMEM_WARM_POOL_SIZE:-16}
|
||
|
|
export HAKMEM_TINY_C4_INLINE_SLOTS=${HAKMEM_TINY_C4_INLINE_SLOTS:-1}
|
||
|
|
export HAKMEM_TINY_C5_INLINE_SLOTS=${HAKMEM_TINY_C5_INLINE_SLOTS:-1}
|
||
|
|
export HAKMEM_TINY_C6_INLINE_SLOTS=${HAKMEM_TINY_C6_INLINE_SLOTS:-1}
|
||
|
|
export HAKMEM_TINY_INLINE_SLOTS_FIXED=${HAKMEM_TINY_INLINE_SLOTS_FIXED:-1}
|
||
|
|
export HAKMEM_TINY_INLINE_SLOTS_SWITCHDISPATCH=${HAKMEM_TINY_INLINE_SLOTS_SWITCHDISPATCH:-1}
|
||
|
|
export HAKMEM_TINY_INLINE_SLOTS_SWITCHDISPATCH_FIXED=${HAKMEM_TINY_INLINE_SLOTS_SWITCHDISPATCH_FIXED:-0}
|
||
|
|
|
||
|
|
if [[ "${HAKMEM_BENCH_HEADER_LOG:-1}" == "1" ]]; then
|
||
|
|
sha="$(git rev-parse --short HEAD 2>/dev/null || echo unknown)"
|
||
|
|
echo "[OBSERVE] sha=${sha} bin=${bin} profile=${profile} iters=${iters} ws=${ws} size=${HAKMEM_BENCH_MIN_SIZE}..${HAKMEM_BENCH_MAX_SIZE}" >&2
|
||
|
|
fi
|
||
|
|
|
||
|
|
HAKMEM_PROFILE="${profile}" "${bin}" "${iters}" "${ws}" 1
|