Re: [RFC 6/6] sched/fair: Add sched group latency support

From: Chris Hyser
Date: Wed Mar 23 2022 - 14:21:35 EST


On 3/23/22 11:04 AM, Vincent Guittot wrote:
On Tue, 22 Mar 2022 at 17:40, Tejun Heo <tj@xxxxxxxxxx> wrote:

Hello,

On Tue, Mar 22, 2022 at 05:10:36PM +0100, Vincent Guittot wrote:
latency_nice is quite similar to nice. The nice latency is used as an
index to get a latency weight in the range [-1024:1024]. latency_nice
is in the range [-20:19] and latency_prio shifts it in the range
[0:40] . This index is then used to get the latency weight similar to
how the nice prio is used to get a weight. That being said, the
latency should probably reflect the latency_weight instead of the
latency_prio in order to be aligned with the weight and weight.nice
fields of cgroups.

As described in patch 5 commit message, the weight is then used to
compute a relative offset to check whether the waking task can preempt
the current running task.

So, what I'm trying to say is if it is actually a weight, just use weight
values instead of arbitrary mapped nice values. Nobody can tell how the
latency nice value of -2 compares against, say, 3. If you can define it
clearly in terms of weights (or something else clearly describable), it'd be
a lot better.

The current use is mapped to weight because weight makes sense when
comparing vruntime but others might want to map the latency nice to
something else in other places of the scheduler. Time but also others
have mentioned the depth of the loop for looking an idle CPU

Reinforcing what Vincent said, about a year and half ago there were four different projects/ideas looking to do different but relatively compatible things based on the latency sensitivity of a task. We were looking for a number to describe this sensitivity, say like an integer. One of those projects wanted to do "bad for latency" power saving things so we then needed "good for latency", "neutral" and "potentially bad for latency". Call neutral 0, negative good and positive bad and there was a fair similarity to nice. Given that was an abstraction, we did recognize that beyond smaller numbers being more sensitive there really isn't much more you can say about the relationship between numbers. Certainly no guarantees of linearity.

-chrish