Re: [PATCH v6 04/11] cpufreq/schedutil: use rt utilization tracking

From: Quentin Perret
Date: Fri Jun 22 2018 - 11:30:30 EST


On Friday 22 Jun 2018 at 17:22:58 (+0200), Peter Zijlstra wrote:
> On Fri, Jun 22, 2018 at 01:37:13PM +0200, Peter Zijlstra wrote:
> > That is true.. So we could limit the scaling to the case where there is
> > no idle time, something like:
> >
> > util = sg_cpu->util_cfs;
> >
> > cap_cfs = (1024 - (sg_cpu->util_rt + ...));
> > if (util == cap_cfs)
> > util = sg_cpu->max;
> >
>
> OK, it appears this is more or less what the patches do. And I think
> there's a small risk/hole with this where util ~= cap_cfs but very close
> due to some unaccounted time.

So Vincent suggested at some point to add a margin to avoid that issue
IIRC. FWIW, this is what the overutilized flag of EAS does. It basically
says, if there isn't enough idle time in the system (cfs_util is too close
to cap_cfs), don't bother looking at the util signals because they'll be
kinda wrong.

So what about something like, go to max freq if overutilized ? Or
something similar on a per cpufreq policy basis ?

Thanks,
Quentin