From: Waiman Long <Waiman.Long@hp.com>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
David Howells <dhowells@redhat.com>,
Dave Jones <davej@redhat.com>,
Clark Williams <williams@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Davidlohr Bueso <davidlohr.bueso@hp.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"Chandramouleeswaran, Aswin" <aswin@hp.com>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Andrew Morton <akpm@linux-foundation.org>,
"Norton, Scott J" <scott.norton@hp.com>,
Rik van Riel <riel@redhat.com>
Subject: Re: [PATCH RFC 1/3] mutex: Make more scalable by doing less atomic operations
Date: Mon, 08 Apr 2013 13:53:51 -0400 [thread overview]
Message-ID: <5163042F.9000404@hp.com> (raw)
In-Reply-To: <CA+55aFztAtpiGK9e_Ed=Kk4jAWNTahv9OEb0+fgp52Api1s7Mw@mail.gmail.com>
On 04/08/2013 10:38 AM, Linus Torvalds wrote:
> On Mon, Apr 8, 2013 at 5:42 AM, Ingo Molnar<mingo@kernel.org> wrote:
>> AFAICS the main performance trade-off is the following: when the owner CPU unlocks
>> the mutex, we'll poll it via a read first, which turns the cacheline into
>> shared-read MESI state. Then we notice that its content signals 'lock is
>> available', and we attempt the trylock again.
>>
>> This increases lock latency in the few-contended-tasks case slightly - and we'd
>> like to know by precisely how much, not just for a generic '10-100 users' case
>> which does not tell much about the contention level.
> We had this problem for *some* lock where we used a "read + cmpxchg"
> in the hotpath and it caused us problems due to two cacheline state
> transitions (first to shared, then to exclusive). It was faster to
> just assume it was unlocked and try to do an immediate cmpxchg.
>
> But iirc it is a non-issue for this case, because this is only about
> the contended slow path.
>
> I forget where we saw the case where we should *not* read the initial
> value, though. Anybody remember?
>
> That said, the MUTEX_SHOULD_XCHG_COUNT macro should die. Why shouldn't
> all architectures just consider negative counts to be locked? It
> doesn't matter that some might only ever see -1.
I think so too. However, I don't have the machines to test out other
architectures. The MUTEX_SHOULD_XCHG_COUNT is just a safety measure to
make sure that my code won't screw up the kernel in other architectures.
Once it is confirmed that a negative count other than -1 is fine for all
the other architectures, the macro can certainly go.
Regards,
Longman
next prev parent reply other threads:[~2013-04-08 17:54 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-04 14:54 [PATCH RFC 0/3] mutex: Improve mutex performance by doing less atomic-ops & spinning Waiman Long
2013-04-04 14:54 ` [PATCH RFC 1/3] mutex: Make more scalable by doing less atomic operations Waiman Long
2013-04-08 12:42 ` Ingo Molnar
2013-04-08 14:38 ` Linus Torvalds
2013-04-08 15:09 ` Ingo Molnar
2013-04-08 17:53 ` Waiman Long [this message]
2013-04-10 10:31 ` Ingo Molnar
2013-04-10 15:52 ` Waiman Long
2013-04-10 17:16 ` Ingo Molnar
2013-04-10 21:26 ` Waiman Long
2013-04-11 9:07 ` Ingo Molnar
2013-04-10 14:09 ` Robin Holt
2013-04-10 15:46 ` Linus Torvalds
2013-04-08 17:42 ` Waiman Long
2013-04-10 10:28 ` Ingo Molnar
2013-04-10 15:47 ` Waiman Long
2013-04-04 14:54 ` [PATCH RFC 2/3] mutex: restrict mutex spinning to only one task per mutex Waiman Long
2013-04-04 14:54 ` [PATCH RFC 3/3] mutex: dynamically disable mutex spinning at high load Waiman Long
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=5163042F.9000404@hp.com \
--to=waiman.long@hp.com \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=aswin@hp.com \
--cc=davej@redhat.com \
--cc=davidlohr.bueso@hp.com \
--cc=dhowells@redhat.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=riel@redhat.com \
--cc=scott.norton@hp.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=williams@redhat.com \
/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.