[PATCH v2 14/15] sched/deadline: Do not restart the DL server on replenish from timer

From: Joel Fernandes (Google)
Date: Tue Mar 12 2024 - 21:28:23 EST


There is no point in doing so if there are no CFS tasks to run. If there
were, we would be doing ENQUEUE_REPLENISH from the dl_task_timer,
instead of calling replenish_dl_entity(). Fix that.

Signed-off-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>
---
kernel/sched/deadline.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/deadline.c b/kernel/sched/deadline.c
index e978e299381c..179369d27f66 100644
--- a/kernel/sched/deadline.c
+++ b/kernel/sched/deadline.c
@@ -915,7 +915,7 @@ static void replenish_dl_entity(struct sched_dl_entity *dl_se)
*/
if (dl_se->dl_defer &&
dl_time_before(rq_clock(rq), dl_se->deadline - dl_se->runtime)) {
- if (!is_dl_boosted(dl_se)) {
+ if (!is_dl_boosted(dl_se) && dl_se->server_has_tasks(dl_se)) {
dl_se->dl_defer_armed = 1;
dl_se->dl_throttled = 1;
if (!start_dl_timer(dl_se)) {
--
2.34.1