Re: [PATCH v6 04/11] cpufreq/schedutil: use rt utilization tracking
From: Quentin Perret
Date: Fri Jun 22 2018 - 08:54:45 EST
On Friday 22 Jun 2018 at 13:37:13 (+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;
>
> That specifically handles the '0% idle -> 100% freq' case, but I don't
> realy like edge behaviour like that. If for some reason it all doesn't
> quite align you're left with bits.
>
> And the linear scaling is the next simplest thing that avoids the hard
> boundary case.
Right, so maybe we'll get something smoother by just summing the signals
as Vincent is proposing ? You will still request max freq for the
(util == cap_cfs) case you described. By definition, you will have
(util_cfs + util_rt + ...) == 1024 in this case.
cap_cfs is the delta between RT+DL+... and 1024, and the only case where
util_cfs can be equal to cap_cfs is if util_cfs fills that delta
entirely.
I hope that makes sense
Thanks,
Quentin