Re: [PATCH] sched/fair: Disable LB_BIAS by default

From: Ingo Molnar
Date: Tue Sep 11 2018 - 02:22:56 EST



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Thu, Aug 09, 2018 at 02:57:53PM +0100, Dietmar Eggemann wrote:
> > LB_BIAS allows the adjustment on how conservative load should be
> > balanced.
>
> > It is very likely that LB_BIAS' influence on load balancing can be
> > neglected (see test results below). This is further supported by:
> >
> > (1) Weighted CPU load today is by itself a decayed average value (PELT)
> > (cfs_rq->avg->runnable_load_avg) and not the instantaneous load
> > (rq->load.weight) it was when LB_BIAS was introduced.
> >
> > (2) Sd imbalance_pct is used for CPU_NEWLY_IDLE and CPU_NOT_IDLE (relate
> > to sd's newidle and busy idx) in find_busiest_group() when comparing
> > busiest and local avg load to make load balancing even more
> > conservative.
> >
> > (3) The sd forkexec and newidle idx are always set to 0 so there is no
> > adjustment on how conservatively load balancing is done here.
> >
> > (4) Affine wakeup based on weight (wake_affine_weight()) will not be
> > impacted since the sd wake idx is always set to 0.
> >
> > Let's disable LB_BIAS by default for a few kernel releases to make sure
> > that no workload and no scheduler topology is affected. The benefit of
> > being able to remove the LB_BIAS dependency from source_load() and
> > target_load() is that the entire rq->cpu_load[idx] code could be removed
> > in this case.
>
> Certainly worth a try; as I've written somewhere in a comment; it would
> be very nice to get rid of that load tracking crud.
>
> And it is trivial to revert if something does show up.
>
> Ingo, what do you think?

Ack, I'm very much in favor of reducing complexity.

Thanks,

Ingo