Re: [patch] sched: minimalist select_idle_sibling() bouncing cowsyndrome fix

From: Mike Galbraith
Date: Mon Jan 28 2013 - 06:28:07 EST


On Mon, 2013-01-28 at 12:21 +0100, Ingo Molnar wrote:
> * Mike Galbraith <bitbucket@xxxxxxxxx> wrote:
>
> > On Mon, 2013-01-28 at 11:53 +0100, Ingo Molnar wrote:
> > > * Mike Galbraith <bitbucket@xxxxxxxxx> wrote:
> > >
> > > > If the previous CPU is cache affine and idle, select it.
> > >
> > > No objections in principle - but would be nice to have a
> > > changelog with numbers, % of improvement included and so?
> >
> > Well, that like was my changelog, guess it needs improvement.
> >
> > Take 2.
> >
> > sched: minimalist select_idle_sibling() bouncing cow syndrome fix
> >
> > If the previous CPU is cache affine and idle, select it.
> >
> > The current implementation simply traverses the sd_llc domain,
> > taking the first idle CPU encountered, which walks buddy pairs
> > hand in hand over the package, inflicting excruciating pain.
> >
> > 1 tbench pair (worst case) in a 10 core + SMT package:
> >
> > pre 15.22 MB/sec 1 procs
> > post 252.01 MB/sec 1 procs
>
> Drool ... :-)

Yeah, it really is _that_ fugly as is.

> What would be a 'contrarian' test - i.e. a test where this could
> hurt most?

There is none. It cuts off no preemption escape routes for pgbench,
still has both good and evil faces for all to see, and some to turn to
stone ;-) It only does one thing, don't do the unspeakable.

-Mike

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/