Re: [RFC PATCH 0/1] sched/eevdf: Curb wakeup preemption further

From: K Prateek Nayak
Date: Thu Mar 28 2024 - 23:17:14 EST


On 3/28/2024 3:56 PM, Madadi Vineeth Reddy wrote:
> Hi Prateek,
>
> On 25/03/24 11:32, K Prateek Nayak wrote:
>> Wakeup preemption problem
>> =========================
>>
>> With the curr entity's eligibility check, a wakeup preemption is very
>> likely when an entity with positive lag joins the runqueue pushing the
>> avg_vruntime of the runqueue backwards, making the vruntime of the
>> current entity ineligible. This leads to aggressive wakeup preemption
>> which was previously guarded by wakeup_granularity_ns in legacy CFS.
>
> Is base_slice_ns not guarding it in EEVDF?

"base_slice_ns" guards it in some sense since lag clamping is based on
the entity's slice but the problem is the eligibility criteria which is
purely based on rq's avg_vruntime and entity's vruntime. Previously
"wakeup_granularity_ns" would have added a buffer before preempting the
current task soon into its run but this is no longer the case with EEVDF
especially if new entities join the runqueue with positive lag pulling
the avg_vruntime backwards.

Please do correct me if I've missed something.

>
>> Below figure depicts one such aggressive preemption scenario with EEVDF:
>
> Thanks and Regards
> Madadi Vineeth Reddy

--
Thanks and Regards,
Prateek