On Wed, Aug 10, 2016 at 03:49:07AM +0200, Rafael J. Wysocki wrote: > Index: linux-pm/kernel/sched/fair.c > =================================================================== > --- linux-pm.orig/kernel/sched/fair.c > +++ linux-pm/kernel/sched/fair.c > @@ -2875,11 +2875,8 @@ static inline void update_tg_load_avg(st > > static inline void cfs_rq_util_change(struct cfs_rq *cfs_rq) > { > - struct rq *rq = rq_of(cfs_rq); > - int cpu = cpu_of(rq); > - > - if (cpu == smp_processor_id() && &rq->cfs == cfs_rq) { > - unsigned long max = rq->cpu_capacity_orig; > + if (&this_rq()->cfs == cfs_rq) { > + struct rq *rq = rq_of(cfs_rq); > > /* > * There are a few boundary cases this might miss but it should > @@ -2897,8 +2894,8 @@ static inline void cfs_rq_util_change(st > * > * See cpu_util(). > */ > - cpufreq_update_util(rq_clock(rq), > - min(cfs_rq->avg.util_avg, max), max); > + if (cpu_of(rq) == smp_processor_id())
Isn't this test against smp_processor_id() redundant since this_rq()->cfs == cfs_rq? > + cpufreq_update_util(rq_clock(rq), 0); All else looked good to me. thanks, Steve