mirror of
https://github.com/linux-msm/laptops-kernel.git
synced 2026-08-13 14:19:53 -07:00
sched/deadline: Use revised wakeup rule for dl_server
John noted that commit1151354225("sched/deadline: Fix 'stuck' dl_server") unfixed the issue from commita3a70caf79("sched/deadline: Fix dl_server behaviour"). The issue in commit1151354225was for wakeups of the server after the deadline; in which case you *have* to start a new period. The case fora3a70caf79is wakeups before the deadline. Now, because the server is effectively running a least-laxity policy, it means that any wakeup during the runnable phase means dl_entity_overflow() will be true. This means we need to adjust the runtime to allow it to still run until the existing deadline expires. Use the revised wakeup rule for dl_defer entities. Fixes:1151354225("sched/deadline: Fix 'stuck' dl_server") Reported-by: John Stultz <jstultz@google.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Juri Lelli <juri.lelli@redhat.com> Tested-by: John Stultz <jstultz@google.com> Link: https://patch.msgid.link/20260404102244.GB22575@noisy.programming.kicks-ass.net
This commit is contained in:
@@ -1027,7 +1027,7 @@ static void update_dl_entity(struct sched_dl_entity *dl_se)
|
||||
if (dl_time_before(dl_se->deadline, rq_clock(rq)) ||
|
||||
dl_entity_overflow(dl_se, rq_clock(rq))) {
|
||||
|
||||
if (unlikely(!dl_is_implicit(dl_se) &&
|
||||
if (unlikely((!dl_is_implicit(dl_se) || dl_se->dl_defer) &&
|
||||
!dl_time_before(dl_se->deadline, rq_clock(rq)) &&
|
||||
!is_dl_boosted(dl_se))) {
|
||||
update_dl_revised_wakeup(dl_se, rq);
|
||||
|
||||
Reference in New Issue
Block a user