]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
sched_ext: Use schedule_deferred_locked() in schedule_dsq_reenq()
authorTejun Heo <tj@kernel.org>
Fri, 13 Mar 2026 19:43:23 +0000 (09:43 -1000)
committerTejun Heo <tj@kernel.org>
Fri, 13 Mar 2026 19:43:23 +0000 (09:43 -1000)
commit238eba8c210d02ec2908d9c9143db4edcea3bfa1
treebf67e3e255ec055a090fe704dffbdd7cea083596
parent3229ac4a5ef5a838e82a784226432c92d3db90a8
sched_ext: Use schedule_deferred_locked() in schedule_dsq_reenq()

schedule_dsq_reenq() always uses schedule_deferred() which falls back to
irq_work. However, callers like schedule_reenq_local() already hold the
target rq lock, and scx_bpf_dsq_reenq() may hold it via the ops callback.

Add a locked_rq parameter so schedule_dsq_reenq() can use
schedule_deferred_locked() when the target rq is already held. The locked
variant can use cheaper paths (balance callbacks, wakeup hooks) instead of
always bouncing through irq_work.

Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
kernel/sched/ext.c