Plain reconfirmation rerun the day after both Stadium fixes landed
(O(ncells) scan fix + donor-floor fix). Same seed, single continuous boot
per architecture, all 9 identities simultaneously live throughout.
81/81 trials correct, 0 mismatches, shuffle sequence md5-identical to
every prior run since e2abc56. Total wall-clock: amd64 ~151s, aarch64
~276s, riscv64 ~165s — consistent with the last verified run, no
regression.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EXieurDfDSsDFdnSyusuWo
49 lines
3.6 KiB
Markdown
49 lines
3.6 KiB
Markdown
# std79 DoE — 3(architecture) × 9(identity) × 3(replicate) randomized full-factorial
|
||
|
||
The formal successor to `experiments/std79-exerciser/`'s ad hoc campaign (see FABRIC-3.md §XII),
|
||
requested as a genuine randomized full-factorial design matching this project's own DoE
|
||
methodology (`capsules/doe.4th`'s Fisher-Yates run-matrix shuffle) rather than convenience
|
||
batching — and written entirely in FORTH, not host-orchestrated shell scripting. See
|
||
FABRIC-3.md §XV for the design writeup, §XVI for the real aarch64 Stadium/COOL scaling bug that
|
||
was found, root-caused, and fixed (`src/starkernel/vm/stadium.c`), and §XVII for a second,
|
||
related Stadium bug (`stadium_grant_quota()`'s donor-floor) found while writing up §XVI and
|
||
fixed in a follow-up pass — the 3-boot batching workaround below is now historical only; a
|
||
single boot with all 9 identities simultaneously live works cleanly on all three architectures
|
||
as of both fixes.
|
||
|
||
`std79-doe.fth` is not a capsule loaded via `EXEC` — feed it as raw text to a running REPL
|
||
(e.g. `socat - UNIX-CONNECT:<serial_sock> < std79-doe.fth`), same as the original exerciser, then
|
||
invoke `EXEC-STD79-DOE ( seed lo hi -- )` once loaded. `lo`/`hi` select which identity-index
|
||
range (0-8) this boot's live VMs cover — pass `0 8` for a single boot with all 9 identities
|
||
simultaneously attached (now confirmed working on all three architectures, see §XVI); a narrower
|
||
range (e.g. `0 2`, `3 5`, `6 8`) still works too, for running the DoE across multiple smaller
|
||
boots if ever needed for an unrelated reason. Every boot must use the *same* seed so
|
||
`INIT-MATRIX`/`SHUFFLE-MATRIX` reproduce the identical 27-slot master permutation; only the
|
||
`lo`/`hi` filter differs, so `run_id` (always the slot's true position in the master shuffle,
|
||
0-26) stays directly comparable across boots.
|
||
|
||
`results-20260911/` holds the raw captured serial output from the *original* campaign (pre-fix):
|
||
`amd64-doe-raw.log` (all 27 trials, one boot, all 9 identities simultaneously live) and
|
||
`{aarch64,riscv64}-doe-batch{1,2,3}-raw.log` (27 trials each, split across 3 boots of 3
|
||
identities, the then-necessary workaround). **Result: 81/81 trials correct, 0 mismatches.**
|
||
|
||
`results-20260911-stadium-fix/` holds the rerun after §XVI's O(ncells)-scan fix — one boot per
|
||
architecture, all 9 identities simultaneously live in every boot, same seed throughout.
|
||
**Result: 81/81 trials correct, 0 mismatches, byte-identical output to the original campaign** —
|
||
and the DOE-RUN header sequence (run_id/id_idx/id_label/rep assignment) is md5-identical across
|
||
all three raw logs, confirming the master shuffle is genuinely architecture-independent. Total
|
||
per-architecture wall-clock (boot + all 9 identity attaches + full 27-trial run, one continuous
|
||
QEMU session): amd64 ~165s, aarch64 ~290s, riscv64 ~161s — aarch64's identity 04 attach alone,
|
||
which stalled 90+ minutes before the fix, now completes in ~34s.
|
||
|
||
`results-20260911-donor-floor-fix/` holds a further rerun after §XVII's donor-floor fix (same
|
||
discipline: any Stadium defect repair reruns the whole DoE from the top). **Result: 81/81
|
||
trials correct, 0 mismatches**, DOE-RUN header sequence md5-identical to every prior run. Total
|
||
wall-clock: amd64 ~161s, aarch64 ~280s (confirms no regression from §XVI's fix), riscv64 ~162s.
|
||
|
||
`results-20260912-reconfirm/` holds a plain reconfirmation rerun the following day, no code
|
||
changes since §XVII's fix (`e51a8d2`) — same seed, same single-boot-per-architecture, all 9
|
||
identities simultaneously live. **Result: 81/81 trials correct, 0 mismatches**, shuffle sequence
|
||
still md5-identical to every prior run. Total wall-clock: amd64 ~151s, aarch64 ~276s, riscv64
|
||
~165s.
|