Re: sched: tweak select_idle_sibling to look for idle threads

From: Mike Galbraith
Date: Mon Apr 11 2016 - 00:54:28 EST


On Sun, 2016-04-10 at 15:55 -0400, Chris Mason wrote:
> On Sun, Apr 10, 2016 at 12:04:21PM +0200, Mike Galbraith wrote:
> > On Sat, 2016-04-09 at 15:05 -0400, Chris Mason wrote:
> >
> > > This does preserve the existing logic to prefer idle cores over idle
> > > CPU threads, and includes some tests to try and avoid the idle scan when we're
> > > actually better off sharing a non-idle CPU with someone else.
> >
> > My box says the "oh nevermind" checks aren't selective enough, tbench
> > dropped 4% at clients=cores, and 2% at clients=threads.
>
> Ok, I was able to reproduce this by stuffing tbench_srv and tbench onto
> just socket 0. Version 2 below fixes things for me, but I'm hoping
> someone can suggest a way to get task_hot() buddy checks without the rq
> lock.
>
> I haven't run this on production loads yet, but our 4.0 patch for this
> uses task_hot(), so I'd expect it to be on par. If this doesn't fix it
> for you, I'll dig up a similar machine on Monday.

My box stopped caring. I personally would be reluctant to apply it
without a "you asked for it" button or a large pile of benchmark
results. Lock banging or not, full scan existing makes me nervous.

-Mike