[RFC PATCH v4 23/28] sched/deadline: Fix HCBS migrations on server stop

From: Yuri Andriaccio
Date: Mon Dec 01 2025 - 07:48:06 EST


From: luca abeni <luca.abeni@xxxxxxxxxxxxxxx>

Do not unthrottle a non-fair-server dl_server_stop(), since it ends up
being stopped when throttled (we try to migrate all the RT tasks away
from it).

Notes:
This is a temporary workaround, but it will be hopefully removed in
favor of less invasive code.

Co-developed-by: Yuri Andriaccio <yurand2000@xxxxxxxxx>
Signed-off-by: Yuri Andriaccio <yurand2000@xxxxxxxxx>
Signed-off-by: luca abeni <luca.abeni@xxxxxxxxxxxxxxx>
---
kernel/sched/deadline.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index a588fe3bbf..91588f3d2e 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -1714,9 +1714,11 @@ void dl_server_stop(struct sched_dl_entity *dl_se)
return;

dequeue_dl_entity(dl_se, DEQUEUE_SLEEP);
- hrtimer_try_to_cancel(&dl_se->dl_timer);
+ if (dl_se == &rq_of_dl_se(dl_se)->fair_server) {
+ hrtimer_try_to_cancel(&dl_se->dl_timer);
+ dl_se->dl_throttled = 0;
+ }
dl_se->dl_defer_armed = 0;
- dl_se->dl_throttled = 0;
dl_se->dl_server_active = 0;
}

--
2.51.0