On Sun, Mar 13, 2016 at 10:22:10PM -0700, Michael Turquette wrote:

> +static unsigned long sugov_sum_total_util(struct sugov_cpu *sg_cpu)
> +{
> +     enum sched_class_util sc;
> +
> +     /* sum the utilization of all sched classes */
> +     sg_cpu->total_util = 0;
> +     for (sc = 0; sc < nr_util_types; sc++)
> +             sg_cpu->total_util += sg_cpu->util[sc];
> +
> +     return sg_cpu->total_util;
> +}

> @@ -153,7 +172,7 @@ static unsigned int sugov_next_freq(struct sugov_policy 
> *sg_policy,
>               if ((s64)delta_ns > NSEC_PER_SEC / HZ)
>                       continue;
>  
> -             j_util = j_sg_cpu->util;
> +             j_util = j_sg_cpu->total_util;
>               j_max = j_sg_cpu->max;
>               if (j_util > j_max)
>                       return max_f;

So while not strictly wrong, I think we can do so much better.

Changelog doesn't mention anything useful, like that this is indeed very
rough and what we really should be doing etc..

Reply via email to