runtime: wake_slot default ON (RFC 005 accepted, finding 18); supervisor stops survivors sequentially so reverse-order teardown is guaranteed; deflake gen_server/channel tests; baseline.json regenerated slot-on; ROADMAP notes
This commit is contained in:
+14
-1
@@ -28,6 +28,15 @@ and **excised** (not worth the code cost; preserved on branch
|
||||
`rfc-004-spinning`). Also a false-sharing fix (`align(64)` on `SchedulerStats`)
|
||||
and a termination wake for idle siblings.
|
||||
Commits `2708042`, `37d9319`, `eddf3fe`.
|
||||
**Default flipped ON 2026-08-18** (history.md findings 17/18): the slot had
|
||||
shipped default-off "until the shootout accepts it" and the flip was never
|
||||
made, so every general.rs number since was slot-off. Acceptance sweep
|
||||
(rq_runtime, 1/2/4/8/20 schedulers, rq-mpmc, 7 runs): ping-pong-pairs
|
||||
−7% at 1T, 3.6×/5.3×/15.6×/10× faster at 2/4/8/20T, 100% slot hits, 0
|
||||
displaced; yield-storm and spawn-storm within ±10% noise both ways.
|
||||
general.rs on the flip: ping_pong_steady 20T 18485→1549 µs, 1T −15%,
|
||||
mpsc_contention 1T −51%, ping_pong_oneshot 20T −18%; no smarm regressions.
|
||||
`benches/baseline.json` regenerated slot-on.
|
||||
|
||||
---
|
||||
|
||||
@@ -146,7 +155,11 @@ Needs an RFC.
|
||||
#### Per-switch cost (context shims, epoch protocol)
|
||||
The shootout's residual: per-wake latency is 0.16–0.18 µs at N=1 and
|
||||
0.8–1.2 µs at N=8+, dominated by the context-switch shims and the epoch
|
||||
protocol, not the queue. On current evidence this is the larger constant —
|
||||
protocol, not the queue. **Premise corrected 2026-08-18 (finding 17): the
|
||||
N=8+ figure was the slot-off futex path (one futex_wake per landed wake,
|
||||
woken worker steals the pair); slot-on it is ~1.3× N=1. The shims are ~5
|
||||
cycles (finding 3) and the epoch CASes ~117 cycles/roundtrip (finding 15).
|
||||
Re-measure slot-on before spending anything here.** On current evidence this is the larger constant —
|
||||
"the whole game" alongside the v0.9 work — but there is no spec yet. Needs a
|
||||
profiling spike (where do the cycles actually go per park/unpark round-trip)
|
||||
and then an RFC before it can be scheduled.
|
||||
|
||||
Reference in New Issue
Block a user