perf(run_queue): flip default backend rq-mutex -> rq-mpmc
Evidence (history.md session 5, findings 10-11, 20-core jobrunner run): rq-mutex collapses with thread count on queue-heavy load (yield-storm 6.9x slower than striped at 20T; attributed cause of the baseline's multi-thread regression on yield_many/chained_spawn), while rq-mpmc is best-or-close everywhere: best 1-thread, best slot-on ping-pong (1237us vs mutex 6754us at 20T), -23%/-41 cyc per yield roundtrip on real hardware (single-core switch_cost, interleaved). rq-striped remains the churn-heavy many-core option, selectable per build. Docs + compile_error hints in run_queue.rs updated to name rq-mpmc as the default. slot_state.rs untouched, no loom-relevant changes; lib (60) + scheduler/channel/supervisor/park_wake/wake_slot/preempt (41) pass under the new default.
This commit is contained in:
+1
-1
@@ -17,7 +17,7 @@ unwrap_used = "deny"
|
||||
expect_used = "deny"
|
||||
|
||||
[features]
|
||||
default = ["rq-mutex"]
|
||||
default = ["rq-mpmc"]
|
||||
smarm-trace = []
|
||||
# RFC 007: native causal profiling. Zero cost when off (cf. smarm-trace): the
|
||||
# hook in `maybe_preempt` and the resume-path fast-forward compile away; the
|
||||
|
||||
Reference in New Issue
Block a user