On Tue, Jan 15, 2019 at 10:15:05AM +0000, Patrick Bellasi wrote:
> --- a/kernel/sched/cpufreq_schedutil.c
> +++ b/kernel/sched/cpufreq_schedutil.c
> @@ -218,8 +218,15 @@ unsigned long schedutil_freq_util(int cpu, unsigned long 
> util_cfs,
>        * CFS tasks and we use the same metric to track the effective
>        * utilization (PELT windows are synchronized) we can directly add them
>        * to obtain the CPU's actual utilization.
> +      *
> +      * CFS utilization can be boosted or capped, depending on utilization
> +      * clamp constraints requested by currently RUNNABLE tasks.
> +      * When there are no CFS RUNNABLE tasks, clamps are released and
> +      * frequency will be gracefully reduced with the utilization decay.
>        */
> -     util = util_cfs;
> +     util = (type == ENERGY_UTIL)
> +             ? util_cfs
> +             : uclamp_util(rq, util_cfs);

That's pretty horrible; what's wrong with:

        util = util_cfs;
        if (type == FREQUENCY_UTIL)
                util = uclamp_util(rq, util);

That should generate the same code, but is (IMO) far easier to read.

>       util += cpu_util_rt(rq);
>  
>       dl_util = cpu_util_dl(rq);

Reply via email to