[RFC PATCH v2 23/25] sched/deadline: Fix HCBS migrations on server stop

From: Yuri Andriaccio
Date: Thu Jul 31 2025 - 07:00:04 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 021d7349897..d9ab209a492 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -1723,9 +1723,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.50.1