[GIT PULL] sched_ext: Fixes for v7.3-rc3
From: Tejun Heo
Date: Tue Sep 15 2026 - 14:41:31 EST
Hello,
The following changes since commit 068e5a0bc57e57d24cbf38def29cc5fb4db9a0df:
sched_ext: Fix missing @slice and @vtime descriptions in finish_dispatch() kernel-doc (2026-08-31 07:28:04 -1000)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git tags/sched_ext-for-7.3-rc3-fixes
for you to fetch changes up to a9e3760b0838299649c0d57cca44daaf40ba3c33:
sched_ext: Maintain an online cid mask in the scheduler arena (2026-09-15 06:57:20 -1000)
----------------------------------------------------------------
sched_ext: Fixes for v7.3-rc3
- An error raised by a BPF program before the scheduler finished enabling
was consumed by the disable path's pre-enable shortcut, leaving a
running scheduler that couldn't be disabled and was later freed while
in use.
- Two compat kfuncs dereferenced a NULL scheduler when handed an exited
or idle task, oopsing the kernel.
- Keep-running decisions in the dispatch path used the root scheduler's
flags for tasks belonging to a sub-scheduler, causing warnings and
stalls.
- Schedulers with their own CPU ID mapping had no way to learn which IDs
are online. Add a kernel-maintained online mask to plug the hole.
- Cgroup idle state: the initial cpu.idle state wasn't passed on cgroup
init and same-value rewrites delivered spurious callbacks.
- Example scheduler fixes for a reenqueue loop on attach, placements on
CPUs without effective grants, stalled partition work and stale idle
tracking.
----------------------------------------------------------------
Tao Cui (2):
sched_ext: Pass the initial cpu.idle state in scx_cgroup_init_args
sched_ext: Don't deliver duplicate ops.cgroup_set_idle() for same value
Tejun Heo (7):
sched_ext: Rename sch to root_sch in dispatch_one()
sched_ext: Use @prev's scheduler for the keep decisions in dispatch_one()
sched_ext: scx_qmap: Do not add IMMED to rescue inserts
sched_ext: scx_qmap: Place only on cids whose caps are in effect
sched_ext: scx_qmap: Fix pending partition work handoff
sched_ext: scx_qmap: Restore unused idle claims from ops.dispatch()
sched_ext: Maintain an online cid mask in the scheduler arena
Wanwu Li (1):
sched_ext: Fix NULL sched deref in kfunc sub-sched error paths
fangqiurong (1):
sched_ext: Close the pre-enable ops error claim window
kernel/sched/ext/ext.c | 142 +++++++++++++++++++++------
kernel/sched/ext/idle.c | 11 ++-
kernel/sched/ext/internal.h | 12 ++-
kernel/sched/ext/sub.c | 12 ++-
tools/sched_ext/include/scx/common.bpf.h | 1 +
tools/sched_ext/scx_qmap.bpf.c | 162 +++++++++++++++++++++----------
tools/sched_ext/scx_qmap.h | 3 +
7 files changed, 254 insertions(+), 89 deletions(-)
--
tejun