From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Ingo Molnar <mingo@elte.hu>, Matthew Wilcox <matthew@wil.cx>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Gregory Haskins <ghaskins@novell.com>,
Andi Kleen <andi@firstfloor.org>,
Chris Mason <chris.mason@oracle.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
linux-fsdevel <linux-fsdevel@vger.kernel.org>,
linux-btrfs <linux-btrfs@vger.kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Nick Piggin <npiggin@suse.de>,
Peter Morreale <pmorreale@novell.com>,
Sven Dietrich <SDietrich@novell.com>,
Dmitry Adamushko <dmitry.adamushko@gmail.com>,
Johannes Weiner <hannes@cmpxchg.org>
Subject: Re: [GIT PULL] adaptive spinning mutexes
Date: Thu, 15 Jan 2009 17:34:43 -0800 [thread overview]
Message-ID: <20090116013443.GH6763@linux.vnet.ibm.com> (raw)
In-Reply-To: <alpine.LFD.2.00.0901151656060.3118@localhost.localdomain>
On Thu, Jan 15, 2009 at 05:01:32PM -0800, Linus Torvalds wrote:
> On Thu, 15 Jan 2009, Paul E. McKenney wrote:
> > On Thu, Jan 15, 2009 at 10:16:53AM -0800, Linus Torvalds wrote:
> > >
> > > IOW, if you do pre-allocation instead of holding a lock over the
> > > allocation, you win. So yes, spin-mutexes makes it easier to write the
> > > code, but it also makes it easier to just plain be lazy.
> >
> > In infrequently invoked code such as some error handling, lazy/simple
> > can be a big win.
>
> Sure. I don't disagree at all. On such code we don't even care about
> locking. If it _really_ is fundamentally very rarely invoked.
>
> But if we're talking things like core filesystem locks, it's _really_
> irritating when one of those (supposedly rare) allocation delays or the
> need to do IO then blocks all those (supposedly common) nice cached cases.
Certainly if there was one big mutex covering all the operations, it would
indeed be bad. On the other hand, if the filesystem/cache was partitioned
(perhaps hashed) so that there was a large number of such locks, then
if should be OK. Yes, I am making the perhaps naive assumption that
hot spots such as the root inode would be in the cache. And that they
would rarely collide with allocation or I/O, which might also be naive.
But on this point I must defer to the filesystem folks.
> So I don't dispute at all that "mutex with spinning" performs better than
> a mutex, but I _do_ claim that it has some potentially huge downsides
> compared to a real spinlock. It may perform as well as a spinlock in the
> nice common case, but then when you hit the non-common case you see the
> difference between well-written code and badly written code.
>
> And sadly, while allocations _usually_ are nice and immediate, and while
> our caches _usually_ mean that we don't need to do IO, bad behavior when
> we do need to do IO is what really kills interactive feel. Suddenly
> everything else is hurting too, because they wanted that lock - even if
> they didn't need to do IO or allocate anything.
I certainly agree that there are jobs that a spin-mutex is ill-suited for.
Thanx, Paul
next prev parent reply other threads:[~2009-01-16 1:34 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-12 15:37 [PATCH -v8][RFC] mutex: implement adaptive spinning Peter Zijlstra
2009-01-12 16:04 ` Linus Torvalds
2009-01-12 16:20 ` Linus Torvalds
2009-01-12 16:45 ` Chris Mason
2009-01-12 16:50 ` Peter Zijlstra
2009-01-12 17:14 ` Chris Mason
2009-01-12 17:24 ` Peter Zijlstra
2009-01-12 17:30 ` Chris Mason
2009-01-12 17:16 ` Peter Zijlstra
2009-01-12 17:33 ` Boaz Harrosh
2009-01-12 18:07 ` Peter Zijlstra
2009-01-12 16:13 ` Avi Kivity
2009-01-12 17:13 ` Peter Zijlstra
2009-01-12 17:23 ` Avi Kivity
2009-01-12 17:32 ` Avi Kivity
2009-01-14 16:46 ` Peter Zijlstra
2009-01-14 17:04 ` Nick Piggin
2009-01-14 17:23 ` Avi Kivity
2009-01-15 0:50 ` Nick Piggin
2009-01-13 15:15 ` [PATCH -v9][RFC] " Peter Zijlstra
2009-01-13 16:16 ` Linus Torvalds
2009-01-13 16:21 ` Peter Zijlstra
2009-01-13 16:39 ` Ingo Molnar
2009-01-13 16:40 ` Peter Zijlstra
2009-01-13 16:49 ` Linus Torvalds
2009-01-13 17:21 ` Peter Zijlstra
2009-01-13 18:33 ` Ingo Molnar
2009-01-13 18:40 ` Linus Torvalds
2009-01-13 19:01 ` Ingo Molnar
2009-01-14 2:58 ` Chris Mason
2009-01-14 11:18 ` Dmitry Adamushko
2009-01-14 16:47 ` Chris Mason
2009-01-14 17:32 ` Dmitry Adamushko
2009-01-14 11:21 ` Ingo Molnar
2009-01-14 15:43 ` Linus Torvalds
2009-01-14 16:23 ` Chris Mason
2009-01-14 17:06 ` [PATCH -v11 delta] " Ingo Molnar
2009-01-14 17:00 ` [PATCH -v11][RFC] " Peter Zijlstra
2009-01-14 17:18 ` Nick Piggin
2009-01-14 17:22 ` Peter Zijlstra
2009-01-15 0:46 ` Nick Piggin
2009-01-15 7:44 ` Peter Zijlstra
2009-01-15 7:52 ` Nick Piggin
2009-01-14 18:33 ` [GIT PULL] adaptive spinning mutexes Ingo Molnar
2009-01-14 18:40 ` Chris Mason
2009-01-15 9:53 ` Ingo Molnar
2009-01-14 18:47 ` Ingo Molnar
2009-01-14 19:28 ` Ingo Molnar
2009-01-15 17:44 ` Matthew Wilcox
2009-01-15 18:05 ` Linus Torvalds
2009-01-15 18:08 ` Ingo Molnar
2009-01-15 18:16 ` Linus Torvalds
2009-01-15 19:26 ` Chris Mason
2009-01-15 20:13 ` Linus Torvalds
2009-01-15 21:04 ` Chris Mason
2009-01-15 22:03 ` Ingo Molnar
2009-01-16 13:32 ` Folkert van Heusden
2009-01-16 13:57 ` Folkert van Heusden
2009-01-16 18:37 ` Bill Davidsen
2009-01-16 0:53 ` Paul E. McKenney
2009-01-16 1:01 ` Linus Torvalds
2009-01-16 1:34 ` Paul E. McKenney [this message]
2009-01-16 14:07 ` Folkert van Heusden
2009-01-16 3:03 ` Nick Piggin
2009-01-15 18:06 ` Ingo Molnar
2009-01-14 18:53 ` Andrew Morton
2009-01-14 19:00 ` Ingo Molnar
2009-01-14 19:36 ` Andrew Morton
2009-01-14 19:50 ` Peter Zijlstra
2009-01-14 20:21 ` Andrew Morton
2009-01-14 20:27 ` Ingo Molnar
2009-01-14 20:44 ` Andrew Morton
2009-01-14 20:14 ` Ingo Molnar
2009-01-14 20:30 ` Andrew Morton
2009-01-14 20:51 ` Ingo Molnar
2009-01-14 21:06 ` Andrew Morton
2009-01-14 21:14 ` Ingo Molnar
2009-01-14 21:35 ` Andrew Morton
2009-01-14 23:23 ` Ingo Molnar
2009-01-15 0:55 ` Nick Piggin
2009-01-14 21:41 ` Ingo Molnar
2009-01-14 21:50 ` Kay Sievers
2009-01-14 22:34 ` Ingo Molnar
2009-01-15 11:45 ` Folkert van Heusden
2009-01-15 12:53 ` Chris Samuel
2009-01-14 19:23 ` Peter Zijlstra
2009-01-14 19:33 ` Ingo Molnar
2009-01-15 8:41 ` [PATCH] mutex: set owner only once on acquisition Johannes Weiner
2009-01-15 8:56 ` Johannes Weiner
2009-01-13 18:12 ` [PATCH -v9][RFC] mutex: implement adaptive spinning Ingo Molnar
2009-01-13 18:21 ` Linus Torvalds
2009-01-13 18:24 ` Ingo Molnar
2009-01-14 11:41 ` [PATCH -v8][RFC] " Folkert van Heusden
2009-01-14 11:42 ` Peter Zijlstra
2009-01-14 11:42 ` Folkert van Heusden
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=20090116013443.GH6763@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--cc=SDietrich@novell.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=chris.mason@oracle.com \
--cc=dmitry.adamushko@gmail.com \
--cc=ghaskins@novell.com \
--cc=hannes@cmpxchg.org \
--cc=linux-btrfs@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew@wil.cx \
--cc=mingo@elte.hu \
--cc=npiggin@suse.de \
--cc=pmorreale@novell.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).