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:
co-authored by
Claude Opus 5.5
parent
dd23c3aa45
commit
00058e53a7
@@ -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
@@ -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 |
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user