[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7139641b-5ca6-3799-9e41-72af894d02ad@oracle.com>
Date: Wed, 23 Mar 2022 14:20:17 -0400
From: Chris Hyser <chris.hyser@...cle.com>
To: Vincent Guittot <vincent.guittot@...aro.org>,
Tejun Heo <tj@...nel.org>
Cc: mingo@...hat.com, peterz@...radead.org, juri.lelli@...hat.com,
dietmar.eggemann@....com, rostedt@...dmis.org, bsegall@...gle.com,
mgorman@...e.de, linux-kernel@...r.kernel.org, parth@...ux.ibm.com,
qais.yousef@....com, pkondeti@...eaurora.org,
Valentin.Schneider@....com, patrick.bellasi@...bug.net,
David.Laight@...lab.com, pjt@...gle.com, pavel@....cz,
dhaval.giani@...cle.com, qperret@...gle.com,
tim.c.chen@...ux.intel.com
Subject: Re: [RFC 6/6] sched/fair: Add sched group latency support
On 3/23/22 11:04 AM, Vincent Guittot wrote:
> On Tue, 22 Mar 2022 at 17:40, Tejun Heo <tj@...nel.org> 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
Powered by blists - more mailing lists