diff options
| author | Kuba Piecuch <jpiecuch@google.com> | 2026-09-30 14:23:59 +0000 |
|---|---|---|
| committer | Tejun Heo <tj@kernel.org> | 2026-09-30 07:49:52 -1000 |
| commit | cc07fae1de5dbf514a9a3978050ee3cf5fe20d3c (patch) | |
| tree | 0c05f0cdb419b994f49d8b72461440431ae2eb77 /include/linux/sched | |
| parent | af701b8d3238b9eb7cd450b0491300452c700bf5 (diff) | |
selftests/sched_ext: Add a test for ops.dequeue() on remote local DSQ moves
Add a dequeue_remote test that makes moves of tasks in the BPF
scheduler's custody to another CPU's local DSQ the common case, both via
SCX_DSQ_LOCAL_ON dispatch and via scx_bpf_dsq_move_to_local(). The BPF
scheduler tracks each task's custody state and triggers scx_bpf_error()
if a custody period doesn't end with exactly one ops.dequeue() before
the task runs, or if it ends with an SCX_DEQ_CORE_SCHED_EXEC dequeue of
a task without a core cookie.
Without the previous patch, the test fails with:
sched_ext: dequeue_remote: dequeue_remote.bpf.c:141: 15 (rcu_preempt): late ops.dequeue() with SCX_DEQ_CORE_SCHED_EXEC (enq_cpu=3 cpu=2 seq=1)
...
ops_dequeue+0x114/0x170
set_next_task_scx+0x104/0x1e0
__pick_next_task+0xc7/0x180
__schedule+0x154/0x1870
Reviewed-by: Andrea Righi <arighi@nvidia.com>
Assisted-by: Claude:claude-opus-5.5
Signed-off-by: Kuba Piecuch <jpiecuch@google.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux/sched')
0 files changed, 0 insertions, 0 deletions
