docs+tools: the threading fix measured 5/5 against 1/5, and a driver lock

resume_reliability.sh counts, per boot, whether the title's loader thread became
the CALLER of a kernel call. Counting boots where the press reached the title:
before the fix 1 of 5 ran the loader; after it, 5 of 5. Three of the post-fix
boots were driven far enough to classify the screen and all three reached the
MAIN MENU, each with the same shape - title at 216-252s, 40 kernel calls by the
loader, 6 ResolvePath reads. The failing boots before had zero of both, every
time.

Caveat kept in the doc: pre-fix runs were interleaved with compiles and a race is
load-sensitive, so the counts corroborate the mechanism rather than carry it.

Also fixes a self-inflicted confound. Two runs came back 'title_at_s=none' with
the emulator log ending in 'Killed', which I first read as the title detector
being too strict. It was not: an earlier copy of the script was still running
because 'pkill -f resume_reliability.sh' had matched the shell running it rather
than the script, and each of that copy's iterations kills the emulator BY NAME -
outside run-canary's lockfile. The harness now takes its own lockfile and refuses
a second copy, and the note records that pkill -f matches your own shell.
This commit is contained in:
Sylpheed RE agent
2026-08-19 11:12:46 +00:00
parent 0d8d2ab758
commit 714c74565f
3 changed files with 63 additions and 4 deletions

View File

@@ -21,6 +21,18 @@ mkdir -p "$OUT"
CSV="$OUT/$TAG.csv"
echo "run,title_at_s,thread_created,thread_ran_calls,resolvepath_after,screen" > "$CSV"
# Refuse to run two of these at once. Each iteration below kills the emulator by
# name, which is outside run-canary's lockfile — so a second copy of this script
# silently killed the first copy's boots mid-run and they were recorded as
# failures ("title_at_s=none", the emulator log ending in "Killed"). One
# emulator at a time has to mean one DRIVER at a time too.
exec 8>/tmp/resume-reliability.lock
if ! flock -n 8; then
echo "resume_reliability.sh: another run is in progress (lock /tmp/resume-reliability.lock)" >&2
echo " kill it with: pkill -x resume_reliability.sh # -x, NOT -f: -f matches your own shell" >&2
exit 1
fi
for i in $(seq 1 "$RUNS"); do
pkill -9 -x xenia_canary 2>/dev/null; sleep 3
rm -f /tmp/xenia-canary.lock