backlog: inducer n=2, T74/T75 signature withdrawn, T68/T69 survives
This commit is contained in:
@@ -783,6 +783,16 @@ search cannot find a *schedule*.
|
||||
been running; **T74 and T75 move off a semaphore onto an event** (the only
|
||||
threads that change what *kind* of object they wait for → chase these first);
|
||||
T50 drops `WaitMultiple(XEvent,XEvent)` → `Wait(XEvent)`.
|
||||
* 🔴 **(2026-08-25) WITHDRAWN: the T74/T75 signature.** It does **not** reproduce
|
||||
— in run 2 they are on `Wait(XEvent)` while **healthy** and stay there. My
|
||||
error: the healthy state is not fixed either, so a **one-sample-per-state**
|
||||
diff cannot separate a freeze transition from ordinary variation between two
|
||||
instants. ✅ **What survives two independent captures:** T68 and T69 go from
|
||||
not-waiting to waiting in *both* runs (T69 on a semaphore, T68 on an event,
|
||||
both times), and the bulk of threads are untouched (17/24 run 1, **21/24** run
|
||||
2) ⇒ **not a whole-emulator stall** now has two captures behind it. **Next:
|
||||
repeat the capture several times inside ONE healthy run** to learn which thread
|
||||
states are stable before reading any frozen diff as meaningful.
|
||||
* ✅ **(2026-08-25) CORRECTION: `screen_id == flight` is NOT a freeze test.**
|
||||
The previous entry used it to rule out a freeze. `frozen.py` exists precisely
|
||||
because a frozen mission still classifies as `flight` (its docstring: 724 s of
|
||||
@@ -794,7 +804,11 @@ search cannot find a *schedule*.
|
||||
Run flew **~670 s clean** with only the pilot; a heavy-CPU inducer
|
||||
(`heavy_read.py cpu`) started at 08:59:54 and it froze at **09:00:48 — 54 s
|
||||
later**, inside the 27–255 s band. Consistent with the existing tally but
|
||||
**n=1, not causal** (confounder: elapsed mission time). ✅ **Refuted en route:
|
||||
**n=1, not causal** (confounder: elapsed mission time). ⬆️ **UPGRADED to n=2
|
||||
(2026-08-25)**: run 2 put the inducer **on from flight start** and froze
|
||||
**~96 s** in (10:07:20 → 10:08:56). Both freezes sit inside the 27–255 s band;
|
||||
the only long clean stretch is the only window with no inducer. Contrast is
|
||||
sharp, confounder still untouched. ✅ **Refuted en route:
|
||||
the I/O was never the cost** — a full uncapped walk of every allocated extent is
|
||||
**371 MB in 0.1 s**, all page cache; the expense is Python-level CPU, ~4.2 s a
|
||||
pass. **Settle it with:** alternating inducer-on/off windows within a run,
|
||||
|
||||
Reference in New Issue
Block a user