Re: [PATCH 2/2] sched/fair: Always propagate runnable_load_avg

From: Tejun Heo
Date: Wed May 03 2017 - 17:49:27 EST

On Wed, May 03, 2017 at 03:09:38PM +0200, Peter Zijlstra wrote:
> On Wed, May 03, 2017 at 12:37:37PM +0200, Vincent Guittot wrote:
> > On 3 May 2017 at 11:37, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> > > Of course, it could be I overlooked something, in which case, please
> > > tell :-)
> >
> > That's mainly based on the regression i see on my platform. I haven't
> > find the root cause of the regression but it's there which means that
> > using group_entity's load_avg to propagate child cfs_rq
> > runnable_load_avg breaks something
> (as mentioned on IRC)
> Right.. so looking through the code, (group) se->avg.load_avg is used in
> effective_load() (and thereby wake_affine()) and update_cfs_rq_h_load()
> (and therefore task_h_load()).
> So changing it will affect those two functions, which could well lead to
> your regression.

Ah, okay, that makes sense. I'll try to finish the patch to propagate
runnable without affecting group se->avg.load_avg. BTW, Vincent, did
you boost the weight of the cgroup when you were testing? If you put
schbench inside a cgroup and have some base load, it is actually
expected to show worse latency. You need to give higher weight to the
cgroup matching the number of active threads (to be accruate, scaled
by duty cycle but shouldn't matter too much in practice).