]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
sched_ext: Skip tasks with stale task_rq in bypass_lb_cpu()
authorTejun Heo <tj@kernel.org>
Sat, 25 Apr 2026 00:31:35 +0000 (14:31 -1000)
committerTejun Heo <tj@kernel.org>
Sat, 25 Apr 2026 00:31:35 +0000 (14:31 -1000)
commitda2d81b4118a74e65d2335e221a38d665902a98c
treea9200c1da08a6977a8c41f0872716898e1a67413
parent4fda9f0e7c950da4fe03cedeb2ac818edf5d03e9
sched_ext: Skip tasks with stale task_rq in bypass_lb_cpu()

bypass_lb_cpu() transfers tasks between per-CPU bypass DSQs without
migrating them - task_cpu() only updates when the donee later consumes the
task via move_remote_task_to_local_dsq(). If the LB timer fires again before
consumption and the new DSQ becomes a donor, @p is still on the previous CPU
and task_rq(@p) != donor_rq. @p can't be moved without its own rq locked.

Skip such tasks.

Fixes: 95d1df610cdc ("sched_ext: Implement load balancer for bypass mode")
Cc: stable@vger.kernel.org # v6.19+
Reported-by: Chris Mason <clm@meta.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Andrea Righi <arighi@nvidia.com>
kernel/sched/ext.c