All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@kernel.org>
To: Mike Galbraith <efault@gmx.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
	Alan Cox <alan@lxorguk.ukuu.org.uk>,
	Andi Kleen <andi@firstfloor.org>, Borislav Petkov <bp@alien8.de>,
	Nikolay Ulyanitsky <lystor@gmail.com>,
	linux-kernel@vger.kernel.org,
	Andreas Herrmann <andreas.herrmann3@amd.com>,
	Peter Zijlstra <a.p.zijlstra@chello.nl>,
	Andrew Morton <akpm@linux-foundation.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: 20% performance drop on PostgreSQL 9.2 from kernel 3.5.3 to 3.6-rc5 on AMD chipsets - bisected
Date: Mon, 17 Sep 2012 12:07:59 +0200	[thread overview]
Message-ID: <20120917100759.GB32463@gmail.com> (raw)
In-Reply-To: <1347869299.6955.156.camel@marge.simpson.net>


* Mike Galbraith <efault@gmx.de> wrote:

> On Sun, 2012-09-16 at 12:57 -0700, Linus Torvalds wrote: 
> > On Sat, Sep 15, 2012 at 9:35 PM, Mike Galbraith <efault@gmx.de> wrote:
> > >
> > > Oh, while I'm thinking about it, there's another scenario that could
> > > cause the select_idle_sibling() change to affect pgbench on largeish
> > > packages, but it boils down to preemption odds as well.
> > 
> > So here's a possible suggestion..
> > 
> > Let's assume that the scheduler code to find the next idle CPU on the
> > package is actually a good idea, and we shouldn't mess with the idea.
> 
> We should definitely mess with the idea, as it causes some problems.
> 
> > But at the same time, it's clearly an *expensive* idea, 
> > which is why you introduced the "only test a single CPU 
> > buddy" approach instead. But that didn't work, and you can 
> > come up with multiple reasons why it wouldn't work. Plus, 
> > quite fundamentally, it's rather understandable that "try to 
> > find an idle CPU on the same package" really would be a good 
> > idea, right?
> 
> I would argue that it did work, it shut down the primary 
> source of pain, which I do not believe to be the traversal 
> cost, rather the bouncing.
> 
>     4 socket 40 core + SMT Westmere box, single 30 sec tbench runs, higher is better:
>     
>      clients     1       2       4        8       16       32       64      128
>      ..........................................................................
>      pre        30      41     118      645     3769     6214    12233    14312
>      post      299     603    1211     2418     4697     6847    11606    14557

That's a very tempting speedup for a simpler and more 
fundamental workload than postgresql's somewhat weird
user-space spinlocks that burn CPU time in user-space
instead of blocking/waiting on a futex.

IIRC mysql does this properly and outperforms postgresql
on this benchmark, in an apples-to-apples configuration?

> 10x at 1 pair shouldn't be traversal, the whole box is 
> otherwise idle. We'll do a lot more (ever more futile) 
> traversal as load increases, but at the same time, our futile 
> attempts fail more frequently, so we shoot ourselves in the 
> foot less frequently.
> 
> The down side is (appears to be) that I also shut down some 
> ~odd case preemption salvation, salvation that only large 
> packages will receive.
> 
> The problem as I see it is that we're making light tasks _too_ 
> mobile, turning an optimization into a pessimization for light 
> tasks.  For longer running tasks this mobility within a large 
> package isn't such a big deal, but for fast movers, it hurts a 
> lot.

There's not enough time to resolve this for v3.6, so I agree 
with the revert - would you be willing to post a v2 of your 
original patch? I really think we want your tbench speedups, 
quite a few real-world messaging applications use the tbench 
patterns of scheduling.

Thanks,

	Ingo

  reply	other threads:[~2012-09-17 10:08 UTC|newest]

Thread overview: 115+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-14  7:47 20% performance drop on PostgreSQL 9.2 from kernel 3.5.3 to 3.6-rc5 on AMD chipsets Nikolay Ulyanitsky
2012-09-14 18:40 ` Borislav Petkov
2012-09-14 18:51   ` Borislav Petkov
2012-09-14 21:27 ` 20% performance drop on PostgreSQL 9.2 from kernel 3.5.3 to 3.6-rc5 on AMD chipsets - bisected Borislav Petkov
2012-09-14 21:40   ` Peter Zijlstra
2012-09-14 21:44     ` Linus Torvalds
2012-09-14 21:56       ` Peter Zijlstra
2012-09-14 21:59         ` Peter Zijlstra
2012-09-15  3:57           ` Mike Galbraith
2012-09-14 22:01         ` Linus Torvalds
2012-09-14 22:10           ` Peter Zijlstra
2012-09-14 22:20             ` Linus Torvalds
2012-09-14 22:14           ` Borislav Petkov
2012-09-14 21:45     ` Borislav Petkov
2012-09-14 21:42   ` Linus Torvalds
2012-09-15  3:33     ` Mike Galbraith
2012-09-15 16:16       ` Andi Kleen
2012-09-15 16:36         ` Mike Galbraith
2012-09-15 17:08           ` richard -rw- weinberger
2012-09-16  4:48             ` Mike Galbraith
2012-09-15 21:32           ` Alan Cox
2012-09-16  4:35             ` Mike Galbraith
2012-09-16 19:57               ` Linus Torvalds
2012-09-17  8:08                 ` Mike Galbraith
2012-09-17 10:07                   ` Ingo Molnar [this message]
2012-09-17 10:47                     ` Mike Galbraith
2012-09-17 14:39                     ` Andi Kleen
2012-09-19 12:35               ` Mike Galbraith
2012-09-19 14:54                 ` Ingo Molnar
2012-09-19 15:23                   ` Mike Galbraith
2012-09-24 15:00     ` Mel Gorman
2012-09-24 15:23       ` Nikolay Ulyanitsky
2012-09-24 15:53         ` Borislav Petkov
2012-09-24 15:30       ` Peter Zijlstra
2012-09-24 15:51         ` Mike Galbraith
2012-09-24 15:52         ` Linus Torvalds
2012-09-24 16:07           ` Peter Zijlstra
2012-09-24 16:33             ` Linus Torvalds
2012-09-24 16:54               ` Peter Zijlstra
2012-09-25 12:10                 ` Hillf Danton
2012-09-24 16:12           ` Peter Zijlstra
2012-09-24 16:30             ` Linus Torvalds
2012-09-24 16:52               ` Borislav Petkov
2012-09-24 16:54               ` Peter Zijlstra
2012-09-24 17:44                 ` Peter Zijlstra
2012-09-25 13:23                   ` Mel Gorman
2012-09-25 14:36                     ` Peter Zijlstra
2012-09-24 18:26                 ` Mike Galbraith
2012-09-24 19:12                   ` Linus Torvalds
2012-09-24 19:20                     ` Borislav Petkov
2012-09-25  1:57                       ` Mike Galbraith
2012-09-25  2:11                         ` Linus Torvalds
2012-09-25  2:49                           ` Mike Galbraith
2012-09-25  3:10                             ` Linus Torvalds
2012-09-25  3:20                               ` Mike Galbraith
2012-09-25  3:32                                 ` Linus Torvalds
2012-09-25  3:43                                   ` Mike Galbraith
2012-09-25 11:58                           ` Peter Zijlstra
2012-09-25 13:17                             ` Borislav Petkov
2012-09-25 17:00                               ` Borislav Petkov
2012-09-25 17:21                                 ` Linus Torvalds
2012-09-25 18:42                                   ` Borislav Petkov
2012-09-25 19:08                                     ` Linus Torvalds
2012-09-26  2:23                                     ` Mike Galbraith
2012-09-26 17:17                                       ` Borislav Petkov
2012-09-26  2:00                                   ` Mike Galbraith
2012-09-26  2:22                                     ` Linus Torvalds
2012-09-26  2:42                                       ` Mike Galbraith
2012-09-26 17:15                                       ` Borislav Petkov
2012-09-26 16:32                                   ` Borislav Petkov
2012-09-26 18:19                                     ` Linus Torvalds
2012-09-26 21:37                                       ` Borislav Petkov
2012-09-27  5:09                                         ` Mike Galbraith
2012-09-27  5:18                                           ` Borislav Petkov
2012-09-27  5:44                                             ` Mike Galbraith
2012-09-27  5:47                                           ` Ingo Molnar
2012-09-27  5:59                                             ` Ingo Molnar
2012-09-27  6:34                                             ` Mike Galbraith
2012-09-27  6:41                                               ` Ingo Molnar
2012-09-27  6:54                                                 ` Mike Galbraith
2012-09-27  7:10                                                   ` Ingo Molnar
2012-09-27 16:25                                                     ` Borislav Petkov
2012-09-27 17:44                                                     ` Linus Torvalds
2012-09-27 18:05                                                       ` Borislav Petkov
2012-09-27 18:19                                                         ` Linus Torvalds
2012-09-27 18:29                                                           ` Peter Zijlstra
2012-09-27 19:24                                                             ` Borislav Petkov
2012-09-28  3:50                                                               ` Mike Galbraith
2012-09-28 12:30                                                                 ` Borislav Petkov
2012-09-27 19:40                                                             ` Linus Torvalds
2012-09-28  4:13                                                               ` Mike Galbraith
2012-09-28  8:37                                                               ` Peter Zijlstra
2012-09-27  7:17                                         ` david
2012-09-27  7:55                                           ` Mike Galbraith
2012-09-27 10:20                                           ` Borislav Petkov
2012-09-27 13:38                                             ` Mike Galbraith
2012-09-27 16:55                                             ` david
2012-09-27  4:32                                       ` Mike Galbraith
2012-09-27  8:21                                       ` Peter Zijlstra
2012-09-27 16:48                                         ` david
2012-09-27 17:38                                           ` Peter Zijlstra
2012-09-27 17:45                                             ` david
2012-09-27 18:09                                               ` Peter Zijlstra
2012-09-27 18:15                                               ` Linus Torvalds
2012-09-27 18:24                                               ` Borislav Petkov
2012-09-25  1:39                     ` Mike Galbraith
2012-09-25 21:11                     ` Suresh Siddha
2012-09-25  4:16       ` Mike Galbraith
2012-09-15  4:11   ` Mike Galbraith
     [not found]     ` <CA+55aFz1A7HbMYS9o-GTS5Zm=Xx8MUD7cR05GMVo--2E34jcgQ@mail.gmail.com>
2012-09-15  4:42       ` Mike Galbraith
2012-09-15 10:44     ` Borislav Petkov
2012-09-15 14:47       ` Mike Galbraith
2012-09-15 15:18         ` Borislav Petkov
2012-09-15 16:13           ` Mike Galbraith
2012-09-15 19:44             ` Borislav Petkov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120917100759.GB32463@gmail.com \
    --to=mingo@kernel.org \
    --cc=a.p.zijlstra@chello.nl \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=andi@firstfloor.org \
    --cc=andreas.herrmann3@amd.com \
    --cc=bp@alien8.de \
    --cc=efault@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lystor@gmail.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.