Re: sched: tweak select_idle_sibling to look for idle threads
From: Chris Mason
Date: Tue Apr 12 2016 - 16:08:13 EST
On Tue, Apr 12, 2016 at 08:16:17PM +0200, Mike Galbraith wrote:
> On Tue, 2016-04-12 at 09:27 -0400, Chris Mason wrote:
> > I
> > can always add the tunable to flip things on/off but I'd prefer that we
> > find a good set of defaults, mostly so the FB production runtime is the
> > common config instead of the special snowflake.
>
> Yeah, generic has a much better chance to actually get merged, just
> need a very solid chain on the lurking beast from hell. Hm...
>
> The last time we went through this, the problem child was the waker of
> many in your load. With tiny twiddle to wake_wide(), all was allegedly
> well, or at least that's the impression I was left with. That leads me
> to a pseudo-random thought: iff that waker of many is still at the
> root, you could try using wake_wide() as the full search trigger, which
> should shrink the attack surface available to the horror-from-hell
> quite a lot. Just a thought.
I think that if we're worried about the cost of the idle scan for this
workload, find_idlest_group() is either going to hurt much more, or not
search enough CPUs to find the idle one.
But I'm happy to try patches or other ideas, I have a fixed version of
the bitmap one going through production benchmarks now.
-chris