diff options
| author | Tejun Heo <tj@kernel.org> | 2026-08-21 09:05:52 -1000 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-08-22 06:50:10 -1000 |
| commit | cca061dccf563907061766191b2ce3f66b7c285a (patch) | |
| tree | 45a7b0236e2db2d5339fd5c5d7ec0178a2857379 /scripts/objdiff | |
| parent | 9e8581a090c02ffa35e8439b90b024956a735de9 (diff) | |
| download | linux-next-cca061dccf563907061766191b2ce3f66b7c285a.tar.gz linux-next-cca061dccf563907061766191b2ce3f66b7c285a.zip | |
sched_ext: Fix spurious aborts in scx_bpf_dsq_move() on ownership change races
scx_dsq_move() verifies that the task belongs to the calling scheduler
before taking any locks and aborts the scheduler on mismatch. The task can
lose the sched association at any point: It can run and fully exit, which
clears the association, or get rehomed to a different sub-sched. Both are
benign races, but the early ownership check escalates them into scheduler
aborts.
Move the ownership check below the cursor-lost check. Every ownership change
dequeues the task first, so a task that is still on the iterated DSQ under
the lock while owned elsewhere indicates a genuine violation and should
abort.
Also fix two stale comments still referencing sched_ext_free(), which has
been renamed to sched_ext_dead().
Fixes: bb4d9fd55158 ("sched_ext: scx_dsq_move() should validate the task belongs to the right scheduler")
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'scripts/objdiff')
0 files changed, 0 insertions, 0 deletions
