Re: wakeup_affine_weight() is b0rked - was Re: [PATCH 2/2] sched/fair: Scale wakeup granularity relative to nr_running

From: Mel Gorman
Date: Tue Oct 05 2021 - 03:47:26 EST


On Mon, Oct 04, 2021 at 11:06:30AM +0200, Mike Galbraith wrote:
> On Mon, 2021-10-04 at 06:34 +0200, Mike Galbraith wrote:
> > On Sun, 2021-10-03 at 20:34 +1300, Barry Song wrote:
> > >
> > > I am wondering if this should be the responsibility of wake_wide()?
> >
> > Those event threads we stacked so high (which are kde minions btw),
> > don't generally accrue _any_ wakee_flips, so when X wakes a slew of the
> > things, wake_wide()'s heuristic rejects the lot.
> >
> > So yeah, the blame game for this issue is a target rich environment.
> > Shoot either of 'em (or both), and you'll hit the bad guy.
>
> The mallet below convinced wake_wide() that X waking event threads is
> something it most definitely should care about. It's not perfect, can
> get caught with its pants down, because behavior changes a LOT, but I
> at least have to work at it a bit to stack tasks to the ceiling.
>
> With make -j8 running along with firefox with two tabs, one containing
> youtube's suggestions of stuff you probably don't want to watch, the
> other a running clip, if I have the idle tab in focus, and don't drive
> mouse around, flips decay enough for wake_wide() to lose interest, but
> just wiggle the mouse, and it starts waking wide. Focus on the running
> clip, and it continuously wakes wide.  
>
> Hacky, but way better behavior.. at this particular testcase.. in this
> particular box.. at least once :)
>

Only three machines managed to complete tests overnight. For most
workloads test, it was neutral or slight improvements. For
multi-kernbench__netperf-tcp-rr-multipair (kernel compile +
netperf-tcp-rr combined), there was little to no change.

For the heavy overloaded cases (hackbench again), it was variable. Worst
improvement was a gain of 1-3%. Best improvement (single socket skylake
with 8 logical CPUs SMT enabled) was 1%-18% depending on the group
count.

--
Mel Gorman
SUSE Labs