Re: [PATCH 1/2] sched/fair: move cpufreq hook to update_cfs_rq_load_avg()

Dietmar Eggemann
2016-03-28T20:05:15Z

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