On Sun, Mar 13, 2016 at 10:22:06PM -0700, Michael Turquette wrote:
> @@ -2840,6 +2853,8 @@ static inline void update_load_avg(struct sched_entity 
> *se, int update_tg)
>  
>       if (cpu == smp_processor_id() && &rq->cfs == cfs_rq) {
>               unsigned long max = rq->cpu_capacity_orig;
> +             unsigned long cap = cfs_rq->avg.util_avg *
> +                     cfs_capacity_margin / max;
>  
>               /*
>                * There are a few boundary cases this might miss but it should
> @@ -2852,8 +2867,7 @@ static inline void update_load_avg(struct sched_entity 
> *se, int update_tg)
>                * thread is a different class (!fair), nor will the utilization
>                * number include things like RT tasks.
>                */
> -             cpufreq_update_util(rq_clock(rq),
> -                                 min(cfs_rq->avg.util_avg, max), max);
> +             cpufreq_update_util(rq_clock(rq), min(cap, max), max);
>       }
>  }

I really don't see why that is here, and not inside whatever uses
cpufreq_update_util().

Reply via email to