Thread (72 messages) 72 messages, 8 authors, 2018-08-12

Re: [PATCH v5 10/14] sched/cpufreq: Refactor the utilization aggregation method

From: Quentin Perret <hidden>
Date: 2018-08-01 09:23:43
Also in: lkml

On Wednesday 01 Aug 2018 at 10:35:32 (+0200), Rafael J. Wysocki wrote:
On Wed, Aug 1, 2018 at 10:23 AM, Quentin Perret [off-list ref] wrote:
quoted
On Wednesday 01 Aug 2018 at 09:32:49 (+0200), Rafael J. Wysocki wrote:
quoted
On Tue, Jul 31, 2018 at 9:31 PM,  [off-list ref] wrote:
quoted
quoted
On Monday 30 Jul 2018 at 12:35:27 (-0700), skannan@codeaurora.org wrote:
quoted
If it's going to be a different aggregation from what's done for
frequency
guidance, I don't see the point of having this inside schedutil. Why not
keep it inside the scheduler files?
This code basically results from a discussion we had with Peter on v4.
Keeping everything centralized can make sense from a maintenance
perspective, I think. That makes it easy to see the impact of any change
to utilization signals for both EAS and schedutil.
In that case, I'd argue it makes more sense to keep the code centralized in
the scheduler. The scheduler can let schedutil know about the utilization
after it aggregates them. There's no need for a cpufreq governor to know
that there are scheduling classes or how many there are. And the scheduler
can then choose to aggregate one way for task packing and another way for
frequency guidance.
Also the aggregate utilization may be used by cpuidle governors in
principle to decide how deep they can go with idle state selection.
The only issue I see with this right now is that some of the things done
in this function are policy decisions which really belong to the governor,
I think.
Well, the scheduler makes policy decisions too, in quite a few places. :-)
That is true ... ;-) But not so much about frequency selection yet I guess
The really important consideration here is whether or not there may be
multiple governors making different policy decisions in that respect.
If not, then where exactly the single policy decision is made doesn't
particularly matter IMO.
I think some users of the aggregated utilization signal do want to make
slightly different decisions (I'm thinking about the RT-go-to-max thing
again which makes perfect sense in sugov, but could possibly hurt EAS).

So the "hard" part of this work is to figure out what really is a
governor-specific policy decision, and what is common between all users.
I put "hard" between quotes because I only see the case of RT as truly
sugov-specific for now.

If we also want a special case for DL, Peter's enum should work OK, and
enable to add more special cases for new users (cpuidle ?) if needed.
But maybe that is something for later ?

Thanks,
Quentin
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help