On Mon, May 27, 2019 at 12:24:07PM -0400, Rik van Riel wrote: > On Mon, 2019-05-27 at 07:21 +0100, Dietmar Eggemann wrote: > > This is done to align the per cpu (i.e. per rq) load with the util > > counterpart (cpu_util(int cpu)). The term 'weighted' is not needed > > since there is no 'unweighted' load to distinguish it from. > > I can see why you want to make cpu_util() and cpu_load() > have the same parameter, but ... > > > @@ -7931,7 +7928,7 @@ static inline void update_sg_lb_stats(struct > > lb_env *env, > > if ((env->flags & LBF_NOHZ_STATS) && > > update_nohz_stats(rq, false)) > > env->flags |= LBF_NOHZ_AGAIN; > > > > - sgs->group_load += weighted_cpuload(rq); > > + sgs->group_load += cpu_load(i); > > sgs->group_util += cpu_util(i); > > sgs->sum_nr_running += rq->cfs.h_nr_running; > > ... now we end up dereferencing cpu_rq(cpu) 3 times. > > I guess per-cpu variables are so cheap that we should > never notice, but I thought I'd ask anyway while looking > over these patches :)
I was going to say CSE should fix that, but then I noticed per_cpu contains that hideous RELOC_HIDE() thing and I figure that might confuse GCC enough to break that :/