DoE: MU-WAIT-ALL waits with 100 WAIT instead of busy-spinning; stopped first relaunch kept

The first amd64 relaunch (stopped by Captain Bob after 1h41m) showed Hera's
busy wait taking an equal CPU share and writing 43% of all heartbeat rows.
100 WAIT charges her 100 beats of work heat per iteration while executing
almost nothing, so workers get the CPU. cfg-0 check: 115 s vs ~210 s,
fail=0, 2/2 dead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-09-24 08:20:22 -04:00
co-authored by Claude Opus 5.5
parent dd23c3aa45
commit 00058e53a7
7 changed files with 394174 additions and 15 deletions
+18
View File
@@ -1371,3 +1371,21 @@ explicit instruction.
**FABRIC-3.8's staged plan (A–I) is complete.** What's next is the per-ISA DoE relaunch
(seed 12345, 3 reps) on the rebuilt driver, then the merge to master.
- [x] **DoE relaunch, first attempt, stopped (2026-09-24).** Launched `12345 3 S" amd64" DOE` at
06:31 (`logs/20260924-062703/amd64/`, kept). Captain Bob stopped it at 08:12 (*"STOP and
hold"*) after a progress check showed the busy-wait cost.
- 173k heartbeat rows at ~31 rows/s, ~100k switches, 0 faults. Trial 1 (cfg 3,
heterogeneous) was still running, so no trial had finished.
- **Hera had written 75,117 rows against its last worker `mu0`'s 75,114.** `MU-WAIT-ALL`'s
busy loop took an equal share of the CPU as workers finished, half of it when one was
left. That's 43% of all rows so far, measuring nothing, and it roughly doubles each
trial's tail.
- **Fix (Captain Bob: "apply the WAIT fix and relaunch amd64"):** `MU-WAIT-ALL`'s loop body
is now `100 WAIT`.
- `WAIT` is the existing ordinary word that counts n beats (`vm_tick()` n times), so each
iteration charges Hera 100 beats of work heat while executing almost nothing, and
writes no rows.
- The decision then favours the workers at her next checkpoint.
- No yield word; capsule-only change.
- **Check** (`logs/20260924-081340/amd64/`, own boot, images reset after): a cfg-0 trial ran
in **115 s against ~210 s before**, `fail=0`, 2/2 dead.
+14 -14
View File
@@ -1,5 +1,5 @@
# Capsule Block Manifest — Auto-generated
<!-- Generated by mkcapsule --manifest 2026-09-24T10:09:49Z -->
<!-- Generated by mkcapsule --manifest 2026-09-24T12:13:16Z -->
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
<!-- Hand-written justifications and immutability notes live -->
<!-- in MANIFEST.md alongside this auto-generated index. -->
@@ -25,7 +25,7 @@
| `init-l8-volatile.4th` | 4810, 4811, 4812, 4813 | `0x98caabbbd92abac4` | yes |
| `init.4th` | 2049, 2050, 2057 | `0xea038ba684c53443` | yes |
| `lib.4th` | 4050 | `0x4b216635c359ef73` | yes |
| `multiuser-doe.4th` | 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055 | `0x2b268decf6065736` | yes |
| `multiuser-doe.4th` | 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055 | `0x97cd087a36d60cdc` | yes |
| `per-isa-doe.4th` | 5117, 5119 | `0xab13edecabfd78db` | yes |
| `sdk.4th` | 5109, 5110, 5111, 5112, 5113, 5114, 5115 | `0x008fdbbb62c94a3a` | yes |
| `turtle.4th` | 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108 | `0x4d470418ca543365` | yes |
@@ -334,18 +334,18 @@
| 5001 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5002 | `fabric.4th` | `0x9d9489cbeca4099b` | ok |
| 5043 | `workload-calib1.4th` | `0x3b9f2d17b554fabc` | ok |
| 5044 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5045 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5046 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5047 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5048 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5049 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5050 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5051 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5052 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5053 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5054 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5055 | `multiuser-doe.4th` | `0x2b268decf6065736` | ok |
| 5044 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5045 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5046 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5047 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5048 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5049 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5050 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5051 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5052 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5053 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5054 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5055 | `multiuser-doe.4th` | `0x97cd087a36d60cdc` | ok |
| 5056 | `workload-5-lite.4th` | `0x05c651e140ef667b` | ok |
| 5057 | `workload-5-lite.4th` | `0x05c651e140ef667b` | ok |
| 5058 | `workload-1-lite.4th` | `0xbc13567fea25063a` | ok |
+1 -1
View File
@@ -120,7 +120,7 @@ Block 5052
I MU-SEND-WORKER
LOOP ;
: MU-WAIT-ALL ( -- )
BEGIN MU-DONE-COUNT @ MU-NW @ < WHILE REPEAT ;
BEGIN MU-DONE-COUNT @ MU-NW @ < WHILE 100 WAIT REPEAT ;
Block 5053
: MU-KILL-ALL ( -- )
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff