Re: [PATCH v3 sched_ext/for-7.3 35/36] tools/sched_ext: scx_qmap - Expand hierarchical sub-scheduling
From: Tejun Heo
Date: Wed Jul 08 2026 - 15:10:03 EST
On Tue, 07 Jul 2026 00:41:01 +0000, sashiko-bot@xxxxxxxxxx wrote:
> - [Medium] Newly acquired exclusive CPUs are not added to `idle_cids.mask` if they were already idle when ownership changed, leading to lost wakeups.
> - [Medium] Tasks pinned exclusively to delegated CPUs will be permanently stranded in `SHARED_DSQ`.
> - [Medium] `qmap_sub_attach` and `qmap_sub_detach` modify the `sub_sched_ctxs` array without synchronization, causing data races with timer-driven partition updates.
1. Real - a cid already idle when it's reclaimed into the owned set was
missed. Fixed by making idle_cids track physical idleness for every
cid and masking it against the owned set at dispatch, so no reseed is
needed.
2. Known limitation - a task affined only to delegated cids strands in
SHARED_DSQ. This is the missing per-affinity fallback, now noted in
the cover letter; a later series adds a root-reserved fallback slice.
3. Real but self-healing - the fields are re-derived by the following
redistribute(). The clean fix (a bpf_spin_lock over the accesses)
isn't usable because the cmask ops it would guard call kfuncs, which
the verifier forbids inside a bpf_spin_lock section. Left as-is for
the demo.
Thanks.
--
tejun