[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