Re: Sum of weights idea for CFS PI

From: Joel Fernandes
Date: Sat Oct 08 2022 - 11:05:05 EST




> On Oct 6, 2022, at 3:40 PM, Youssef Esmat <youssefesmat@xxxxxxxxxx> wrote:
>
[..]
>>
>>> Anyway - just trying to explain how I see it and why C is unlikely to be taking
>>> too much time. I could be wrong. As Youssef said, I think there's no
>>> fundamental problem here.
>>
>> I know on Android where they use smaller HZ, the large tick causes
>> lots of problems for large nice deltas. Example if a highly niced task
>> was to be preempted for 1ms, and preempts instead at 3ms, then the
>> less-niced task will not be so nice (even less nice than it promised
>> to be) any more because of the 2ms boost that the higher niced task
>> got. This can lead the the sched_latency thrown out of the window. Not
>> adjusting the weights properly can potentially make that problem much
>> worse IMO.
>
> Once C releases the lock it should get adjusted and A will get
> adjusted also regardless of tick. At the point we adjust the weights
> we have a chance to check for preemption and cause a reschedule.

Yes but the lock can be held for potentially long time (and even user space lock). I’m more comfortable with Peter’s PE patch which seems a more generic solution, than sum of weights if we can get it working. I’m studying Connor’s patch set now…

> If C doesn't release the lock quickly (hopefully rare), it should
> continue to run at the adjusted weight since it is still blocking A.

We can’t depend on rare. Even one bad instance is a fail. So if lock holder and releaser go crazy, we can’t destabilize the system. After all, this is CFS and fairness should not be broken, even if rarely.

Thanks.


>
>>
>> Thanks.