[GIT PULL] sched_ext: Fixes for v7.2-rc3

From: Tejun Heo

Date: Mon Jul 13 2026 - 17:29:30 EST


Hi Linus,

The following changes since commit f0e6f20cb52b14c2c441f04e21cef0c95d498cac:

Merge tag 'ntfs3_for_7.2' of https://github.com/Paragon-Software-Group/linux-ntfs3 (2026-06-24 10:05:53 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext.git tags/sched_ext-for-7.2-rc3-fixes

for you to fetch changes up to 0e2f4ab68a89fad42e0f5a9ff4b740738e7aa1d6:

sched_ext: Skip ops.set_weight() for disabled tasks (2026-07-10 06:41:28 -1000)

----------------------------------------------------------------
sched_ext: Fixes for v7.2-rc3

- Lifecycle fixes for the new sub-scheduler support: two use-after-frees
and an enable-failure path that left a half-initialized sub-scheduler
linked.

- Two dispatch-path locking bugs: a spurious scheduler abort from a
migration race, and a lockdep splat from stale runqueue-lock tracking.

- Callback and task-state fixes: stale scheduler-owned state on a task
leaving SCX, a weight callback running after disable, and a bogus
warning on core-scheduling forced idle.

- On nohz_full, finite-slice tasks could miss the tick that expires their
slice. Enable it when such a task is picked, with a selftest.

- Smaller fixes: userspace CPU-mask helpers, ratelimited deprecation
warnings, docs and a sparse annotation.

----------------------------------------------------------------
Andrea Righi (4):
sched_ext: Reset dsq_vtime and slice when a task leaves SCX
sched_ext: Preserve rq tracking across local DSQ dispatch
sched_ext: Enable tick for finite slices on nohz_full
selftests/sched_ext: Verify nohz_full tick behavior

Breno Leitao (1):
sched_ext: Avoid flooding the log with deprecation warnings

Kuba Piecuch (2):
sched_ext: Check remote rq eligibility under task's rq lock
sched_ext: Skip ops.set_weight() for disabled tasks

Liang Luo (1):
sched_ext: Documentation: Fix ops table header reference

Tejun Heo (6):
sched_ext: Annotate ksyncs with __rcu in alloc/free_kick_syncs()
sched_ext: Pin parent scx_sched across a child sub-scheduler's lifetime
sched_ext: Don't warn on core-sched forced idle in put_prev_task_scx()
sched_ext: Record an error on errno-only sub-enable failure
sched_ext: Fix premature ops->priv publication in scx_alloc_and_add_sched()
tools/sched_ext: scx - Fix cmask_subset(), cmask_equal() and cmask_weight()

Documentation/scheduler/sched-ext.rst | 8 +-
kernel/sched/ext/ext.c | 177 ++++++++---
kernel/sched/ext/internal.h | 23 +-
tools/sched_ext/include/scx/cid.bpf.h | 88 ++++--
tools/testing/selftests/sched_ext/Makefile | 1 +
tools/testing/selftests/sched_ext/nohz_tick.bpf.c | 65 ++++
tools/testing/selftests/sched_ext/nohz_tick.c | 347 ++++++++++++++++++++++
7 files changed, 614 insertions(+), 95 deletions(-)
create mode 100644 tools/testing/selftests/sched_ext/nohz_tick.bpf.c
create mode 100644 tools/testing/selftests/sched_ext/nohz_tick.c

Thanks.

--
tejun