Re: [V2] sched/schedutil: Don't set next_freq to UINT_MAX

From: Rafael J. Wysocki
Date: Thu May 17 2018 - 05:37:31 EST


On Friday, May 11, 2018 10:47:12 PM CEST Joel Fernandes wrote:
> On Wed, May 09, 2018 at 04:05:24PM +0530, Viresh Kumar wrote:
> > The schedutil driver sets sg_policy->next_freq to UINT_MAX on certain
> > occasions to discard the cached value of next freq:
> > - In sugov_start(), when the schedutil governor is started for a group
> > of CPUs.
> > - And whenever we need to force a freq update before rate-limit
> > duration, which happens when:
> > - there is an update in cpufreq policy limits.
> > - Or when the utilization of DL scheduling class increases.
> >
> > In return, get_next_freq() doesn't return a cached next_freq value but
> > recalculates the next frequency instead.
> >
> > But having special meaning for a particular value of frequency makes the
> > code less readable and error prone. We recently fixed a bug where the
> > UINT_MAX value was considered as valid frequency in
> > sugov_update_single().
> >
> > All we need is a flag which can be used to discard the value of
> > sg_policy->next_freq and we already have need_freq_update for that. Lets
> > reuse it instead of setting next_freq to UINT_MAX.
> >
> > Signed-off-by: Viresh Kumar <viresh.kumar@xxxxxxxxxx>
> > ---
> > V2:
> > - Rebased over the fix sent by Rafael
> >
> > lkml.kernel.org/r/2276196.ev9rMjHTR0@xxxxxxxxxxxxxx
> >
> > - Remove the additional check from sugov_update_single() as well.
> > - This is for 4.18 now instead of stable kernels.
>
> Reviewed-by: Joel Fernandes (Google) <joel@xxxxxxxxxxxxxxxxx>

Applied, thanks!