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 only for running dl_server
Commit14a8570564("sched/deadline: Use revised wakeup rule for dl_server") applies the revised wakeup rule to any server, as a result servers that are not running (dl_defer_running == 0) and start with a deadline overflow get enqueued and can boost tasks as if they were running, invalidating the defer rule and the documented state model. Apply the revised wakeup rule only for deferrable servers that are marked as running. Fixes:14a8570564("sched/deadline: Use revised wakeup rule for dl_server") Signed-off-by: Gabriele Monaco <gmonaco@redhat.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Juri Lelli <juri.lelli@redhat.com> Tested-by: Andrea Righi <arighi@nvidia.com> Link: https://patch.msgid.link/20260522125833.264145-1-gmonaco@redhat.com
This commit is contained in:
committed by
Peter Zijlstra
parent
f5098b6bae
commit
1842bf97af
@@ -1017,7 +1017,8 @@ 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) || dl_se->dl_defer) &&
|
||||
if (unlikely((!dl_is_implicit(dl_se) ||
|
||||
(dl_se->dl_defer && dl_se->dl_defer_running)) &&
|
||||
!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