Re: sched: tweak select_idle_sibling to look for idle threads
From: Yuyang Du
Date: Tue May 10 2016 - 03:08:00 EST
On Mon, May 09, 2016 at 11:39:05AM +0200, Mike Galbraith wrote:
> On Mon, 2016-05-09 at 09:13 +0800, Yuyang Du wrote:
> > On Mon, May 09, 2016 at 09:44:13AM +0200, Mike Galbraith wrote:
>
> > > In a perfect world, running only Chris' benchmark on an otherwise idle
> > > box, there would never _be_ any work to steal.
> >
> > What is the perfect world like? I don't get what you mean.
>
> In a perfect world from this benchmark's perspective, when you fork or
> wake while box is underutilized, wakee/child lands on an idle CPU. To
> this benchmark, anything else is broken.
>
> > > In the real world, we
> > > smooth utilization, optimistically peek at this/that, and intentionally
> > > throttle idle balancing (etc etc), which adds up to an imperfect world
> > > for this (based on real world load) benchmark.
> >
> > So, is this a shout-out: these parts should be coordinated better?
>
> Switching to instantaneous load along with the cpu reservation hackery
> made Chris's benchmark a happy camper. Is that the answer? Nope, just
> verification of the where the problem lives.
By cpu reservation, you mean the various averages in select_task_rq_fair?
It does seem a lot of cleanup should be done.
> > > > En... should we try remove recording last_wakee?
> > >
> > > The more the merrier, go for it! :)
> >
> > Nuh, really, this heuristic is too heuristic, :)
> > The totality of all possible cases is scary.
>
> Well, make it better. The author provided evidence when it was born.
I have to think this through, hot-potato. Maybe even droping it does not
sound outrageous.