Re: [PATCH 1/2] sched/fair: move cpufreq hook to update_cfs_rq_load_avg()
From: Dietmar Eggemann
Date: Mon Mar 28 2016 - 16:05:19 EST
On 03/28/2016 06:34 PM, Steve Muckle wrote:
Hi Dietmar,
On 03/28/2016 05:02 AM, Dietmar Eggemann wrote:
Hi Steve,
these patches fall into the bucket of 'optimization of updating the
value only if the root cfs_rq util has changed' as discussed in '[PATCH
5/8] sched/cpufreq: pass sched class into cpufreq_update_util' of Mike
T's current series '[PATCH 0/8] schedutil enhancements', right?
I would say just the second patch is an optimization. The first and
third patches cover additional paths in CFS where the hook should be
called but currently is not, which I think is a correctness issue.
Not disagreeing here but I don't know if this level of accuracy is
really needed. I mean we currently miss updates in
enqueue_task_fair()->enqueue_entity()->enqueue_entity_load_avg() and
idle_balance()/rebalance_domains()->update_blocked_averages() but there
are plenty of call sides of update_load_avg(se, ...) with
'&rq_of(cfs_rq_of(se))->cfs == cfs_rq_of(se)'.
The question for me is does schedutil work better with this new, more
accurate signal? IMO, not receiving a bunch of consecutive
cpufreq_update_util's w/ the same 'util' value is probably a good thing,
unless we see the interaction with RT/DL class as mentioned by Sai. Here
an agreement on the design for the 'capacity vote aggregation from
CFS/RT/DL' would help to clarify.
I wonder if it makes sense to apply them before a proper 'capacity vote
aggregation from CFS/RT/DL' has been agreed upon?
Getting the right call sites for the hook in CFS should be orthogonal to
the sched class vote aggregation IMO.
Hopefully :-)
[...]
Cheers,
-- Dietmar