[GIT PULL] sched_ext: Fixes for v7.3-rc6
From: Tejun Heo
Date: Tue Oct 06 2026 - 13:36:59 EST
Hello,
The following changes since commit 94480606a677deb68d5622cf0ded88626514b3f2:
sched_ext: Add a size argument to scx_bpf_cid_topo() so struct scx_cid_topo can grow (2026-09-26 10:09:12 -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-rc6-fixes
for you to fetch changes up to e6ac89b8b1c12e9104df45a14a26e2dfa96ded06:
sched_ext: Generate qseq from a per-task counter (2026-10-03 13:23:31 -1000)
----------------------------------------------------------------
sched_ext: Fixes for v7.3-rc6
- Taking a CPU offline could hang, or stall until the watchdog ejected the
BPF scheduler, when tasks on the dying CPU were still held by the
scheduler or sitting on a user dispatch queue. Re-enqueue them onto the
local queue when the runqueue goes offline so that the CPU pushes them off
like the other sched classes.
- The sequence number guarding against stale dispatches was per runqueue, so
a task re-enqueued on another CPU could get the same number and a dispatch
meant for its earlier instance was applied to the new one. Use a per-task
counter.
- A task dispatched to another CPU's local queue got its ops.dequeue() only
when picked to run and flagged as a core-sched pick. Call it at insertion
like for same-CPU dispatches.
----------------------------------------------------------------
Kuba Piecuch (3):
sched_ext: Call ops.dequeue() when a task arrives on a remote local DSQ
selftests/sched_ext: Add a test for ops.dequeue() on remote local DSQ moves
sched_ext: Generate qseq from a per-task counter
Tejun Heo (1):
sched_ext: Fix CPU hotplug hang when a dying CPU's tasks sit in the BPF scheduler
include/linux/sched/ext.h | 1 +
kernel/sched/ext/ext.c | 46 +++-
kernel/sched/ext/inlines.h | 8 +-
kernel/sched/ext/internal.h | 5 +
kernel/sched/ext/sub.c | 4 -
kernel/sched/sched.h | 6 +-
tools/testing/selftests/sched_ext/Makefile | 1 +
.../selftests/sched_ext/dequeue_remote.bpf.c | 270 +++++++++++++++++++++
tools/testing/selftests/sched_ext/dequeue_remote.c | 204 ++++++++++++++++
9 files changed, 528 insertions(+), 17 deletions(-)
create mode 100644 tools/testing/selftests/sched_ext/dequeue_remote.bpf.c
create mode 100644 tools/testing/selftests/sched_ext/dequeue_remote.c
--
tejun