Re: [PATCH v3 sched_ext/for-7.3 35/36] tools/sched_ext: scx_qmap - Expand hierarchical sub-scheduling
Tejun Heo <[email protected]>
| Newsgroups | dev.linux.lists.sched-ext,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
On Tue, 07 Jul 2026 00:41:01 +0000, [email protected] 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