]> git.ipfire.org Git - thirdparty/linux.git/commit
sched/deadline: Fix 'stuck' dl_server
authorPeter Zijlstra <peterz@infradead.org>
Fri, 30 Jan 2026 12:41:00 +0000 (13:41 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 30 Jan 2026 22:06:06 +0000 (23:06 +0100)
commit115135422562e2f791e98a6f55ec57b2da3b3a95
tree301a1a40cda10531e3d4b518e8e8bdc0dde0ca34
parent63804fed149a6750ffd28610c5c1c98cce6bd377
sched/deadline: Fix 'stuck' dl_server

Andrea reported the dl_server getting stuck for him. He tracked it
down to a state where dl_server_start() saw dl_defer_running==1, but
the dl_server's job is no longer valid at the time of
dl_server_start().

In the state diagram this corresponds to [4] D->A (or dl_server_stop()
due to no more runnable tasks) followed by [1], which in case of a
lapsed deadline must then be A->B.

Now our A has dl_defer_running==1, while B demands
dl_defer_running==0, therefore it must get cleared when the CBS wakeup
rules demand a replenish.

Fixes: a110a81c52a9 ("sched/deadline: Deferrable dl server")
Reported-by: Andrea Righi arighi@nvidia.com
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Juri Lelli <juri.lelli@redhat.com>
Tested-by: Andrea Righi arighi@nvidia.com
Link: https://lkml.kernel.org/r/20260123161645.2181752-1-arighi@nvidia.com
Link: https://patch.msgid.link/20260130124100.GC1079264@noisy.programming.kicks-ass.net
kernel/sched/deadline.c