Re: 20% performance drop on PostgreSQL 9.2 from kernel 3.5.3 to 3.6-rc5 on AMD chipsets - bisected

Mike Galbraith
2012-09-25T04:16:21Z

On Mon, 2012-09-24 at 16:00 +0100, Mel Gorman wrote:
> On Fri, Sep 14, 2012 at 02:42:44PM -0700, Linus Torvalds wrote:
> > On Fri, Sep 14, 2012 at 2:27 PM, Borislav Petkov <bp@alien8.de> wrote:
> > >
> > > as Nikolay says below, we have a regression in 3.6 with pgbench's
> > > benchmark in postgresql.
> > >
> > > I was able to reproduce it on another box here and did a bisection run.
> > > It pointed to the commit below.
> >
> > Ok. I guess we should just revert it. However, before we do that,
> > maybe Mike can make it just use the exact old semantics of
> > select_idle_sibling() in the update_top_cache_domain() logic.
> >
>
> The patch that you being reverted was meant to fix problems with
> commit 4dcfe102 (sched: Avoid SMT siblings in select_idle_sibling() if
> possible). That patch made select_idle_sibling() quite fat and I know it
> is responsible for a 2% regression in a kernel compile benchmark between
> kernel 3.1 and 3.2 on an old AMD Phenom II X4 940. Reverting Mike's patch
> might fix this Postgres regression but it reintroduces the overhead caused
> by commit 4dcfe102 for other cases. I do not have a suggestion on how to
> make this better, I'm just pointing out that the revert has some downsides.

Yeah. The very good thing about this is that Linus becoming interested
in a problem like two faced little (naughty word) select_idle_sibling()
brings more minds to bear, so we'll end up in better shape. Right now,
we're in not so wonderful shape with or without my patch, depending very
much on which processor you're running which load on. That needs to get
better. AMD is being hurt _bad_ on fast movers, but just kill the damn
thing on AMD processors, and pgbench will fall through the floor.

Aiming darts would be lots easier if the bullseye would stop moving ;-)

-Mike