sched/eevdf: Handle more short slice waking cases

Handle better the cases with several short slice tasks waking up
simultaneously.

Signed-off-by: Vincent Guittot <vincent.guittot@linaro.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://patch.msgid.link/20260921152238.3804392-4-vincent.guittot@linaro.org
This commit is contained in:
Vincent Guittot 2026-09-21 17:22:33 +02:00 committed by Peter Zijlstra
parent 4bf32ec332
commit d2e0100827

View File

@ -9836,8 +9836,14 @@ static inline bool set_preempt_buddy(struct cfs_rq *cfs_rq, struct sched_entity
static inline bool set_short_buddy(struct cfs_rq *cfs_rq, struct sched_entity *pse)
{
if (cfs_rq->next && cfs_rq->next->slice < pse->slice)
return false;
if (cfs_rq->next) {
if (cfs_rq->next->slice < pse->slice)
return false;
if (cfs_rq->next->slice == pse->slice &&
entity_before(cfs_rq->next, pse))
return false;
}
set_next_buddy(cfs_rq, pse);
return true;