Skip to content

Commit cc1343b

Browse files
committed
sched/deadline: Always stop dl-server before changing parameters
JIRA: https://issues.redhat.com/browse/RHEL-110301 commit bb4700a Author: Juri Lelli <juri.lelli@redhat.com> Date: Mon Jul 21 15:01:42 2025 +0200 sched/deadline: Always stop dl-server before changing parameters Commit cccb45d ("sched/deadline: Less agressive dl_server handling") reduced dl-server overhead by delaying disabling servers only after there are no fair task around for a whole period, which means that deadline entities are not dequeued right away on a server stop event. However, the delay opens up a window in which a request for changing server parameters can break per-runqueue running_bw tracking, as reported by Yuri. Close the problematic window by unconditionally calling dl_server_stop() before applying the new parameters (ensuring deadline entities go through an actual dequeue). Fixes: cccb45d ("sched/deadline: Less agressive dl_server handling") Reported-by: Yuri Andriaccio <yurand2000@gmail.com> Signed-off-by: Juri Lelli <juri.lelli@redhat.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Valentin Schneider <vschneid@redhat.com> Link: https://lore.kernel.org/r/20250721-upstream-fix-dlserver-lessaggressive-b4-v1-1-4ebc10c87e40@redhat.com Signed-off-by: Phil Auld <pauld@redhat.com>
1 parent f02ab9e commit cc1343b

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

kernel/sched/debug.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -376,10 +376,8 @@ static ssize_t sched_fair_server_write(struct file *filp, const char __user *ubu
376376
return -EINVAL;
377377
}
378378

379-
if (rq->cfs.h_nr_queued) {
380-
update_rq_clock(rq);
381-
dl_server_stop(&rq->fair_server);
382-
}
379+
update_rq_clock(rq);
380+
dl_server_stop(&rq->fair_server);
383381

384382
retval = dl_server_apply_params(&rq->fair_server, runtime, period, 0);
385383
if (retval)

0 commit comments

Comments
 (0)