Re: [PATCH v3 0/6] cpufreq: schedutil: fixes for flags updates

From: Peter Zijlstra
Date: Thu Dec 21 2017 - 05:39:56 EST


On Thu, Dec 21, 2017 at 04:00:22PM +0530, Viresh Kumar wrote:
> On 21-12-17, 11:25, Peter Zijlstra wrote:
> > On Thu, Dec 21, 2017 at 02:45:02PM +0530, Viresh Kumar wrote:
> > > On 20-12-17, 16:43, Peter Zijlstra wrote:
> > > > The below makes more sense to me too; hmm?
> > > >
> > > > @@ -335,12 +335,11 @@ static unsigned int sugov_next_freq_shar
> > > >
> > > > j_max = j_sg_cpu->max;
> > > > j_util = sugov_aggregate_util(j_sg_cpu);
> > > > + sugov_iowait_boost(j_sg_cpu, &util, &max);
> >
> > This should 'obviously' have been:
> >
> > sugov_iowait_boost(j_sg_cpu, &j_util, *j_max);
>
> Actually it should be:
>
> sugov_iowait_boost(j_sg_cpu, &j_util, &j_max);

Yes, clearly I cannot type much ;-)

> and this is how it was in the commit I reviewed from your tree. But my query
> still stands, what difference will it make ?
>
> > > > if (j_util * max > j_max * util) {
> > > > util = j_util;
> > > > max = j_max;
> > > > }
> > > > -
> > > > - sugov_iowait_boost(j_sg_cpu, &util, &max);
>

The difference is that we apply the per-cpu boost on the per-cpu util
value and _then_ find the overall maximum.

Instead of finding the overall maximum and then apply the per-cpu boost
to that.