From: "Michael S. Tsirkin" <mst@redhat.com>
To: Andres Freund <andres@anarazel.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>,
linux-kernel@vger.kernel.org,
Linus Torvalds <torvalds@linux-foundation.org>,
Davidlohr Bueso <dave@stgolabs.net>,
Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>,
the arch/x86 maintainers <x86@kernel.org>,
Davidlohr Bueso <dbueso@suse.de>,
virtualization <virtualization@lists.linux-foundation.org>
Subject: Re: [PATCH v2 0/3] x86: faster mb()+other barrier.h tweaks
Date: Thu, 11 Oct 2018 14:11:42 -0400 [thread overview]
Message-ID: <20181011140837-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20181011173707.26pekp65tlipvhdx@alap3.anarazel.de>
On Thu, Oct 11, 2018 at 10:37:07AM -0700, Andres Freund wrote:
> Hi,
>
> On 2016-01-26 10:20:14 +0200, Michael S. Tsirkin wrote:
> > On Tue, Jan 12, 2016 at 02:25:24PM -0800, H. Peter Anvin wrote:
> > > On 01/12/16 14:10, Michael S. Tsirkin wrote:
> > > > mb() typically uses mfence on modern x86, but a micro-benchmark shows that it's
> > > > 2 to 3 times slower than lock; addl $0,(%%e/rsp) that we use on older CPUs.
> > > >
> > > > So let's use the locked variant everywhere - helps keep the code simple as
> > > > well.
> > > >
> > > > While I was at it, I found some inconsistencies in comments in
> > > > arch/x86/include/asm/barrier.h
> > > >
> > > > I hope I'm not splitting this up too much - the reason is I wanted to isolate
> > > > the code changes (that people might want to test for performance) from comment
> > > > changes approved by Linus, from (so far unreviewed) comment change I came up
> > > > with myself.
> > > >
> > > > Lightly tested on my system.
> > > >
> > > > Michael S. Tsirkin (3):
> > > > x86: drop mfence in favor of lock+addl
> > > > x86: drop a comment left over from X86_OOSTORE
> > > > x86: tweak the comment about use of wmb for IO
> > > >
> > >
> > > I would like to get feedback from the hardware team about the
> > > implications of this change, first.
>
> > Any luck getting some feedback on this one?
>
> Ping? I just saw a bunch of kernel fences in a benchmark, making me
> wonder why linux uses mfence rather than lock addl. Leading me to this
> thread.
>
> Greetings,
>
> Andres Freund
It doesn't do it for smp_mb any longer:
commit 450cbdd0125cfa5d7bbf9e2a6b6961cc48d29730
Author: Michael S. Tsirkin <mst@redhat.com>
Date: Fri Oct 27 19:14:31 2017 +0300
locking/x86: Use LOCK ADD for smp_mb() instead of MFENCE
I didn't bother with mb() since I didn't think it's performance
critical, and one needs to worry about drivers possibly doing
non-temporals etc which do need mfence.
Do you see mb() in a benchmark then?
--
MST
next prev parent reply other threads:[~2018-10-11 18:11 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-12 22:10 [PATCH v2 0/3] x86: faster mb()+other barrier.h tweaks Michael S. Tsirkin
2016-01-12 22:10 ` Michael S. Tsirkin
2016-01-12 22:10 ` [PATCH v2 1/3] x86: drop mfence in favor of lock+addl Michael S. Tsirkin
2016-01-12 22:10 ` Michael S. Tsirkin
2016-01-12 22:10 ` [PATCH v2 2/3] x86: drop a comment left over from X86_OOSTORE Michael S. Tsirkin
2016-01-12 22:10 ` Michael S. Tsirkin
2016-01-12 22:25 ` One Thousand Gnomes
2016-01-12 22:25 ` One Thousand Gnomes
2016-01-12 22:10 ` [PATCH v2 3/3] x86: tweak the comment about use of wmb for IO Michael S. Tsirkin
2016-01-12 22:10 ` Michael S. Tsirkin
2016-01-12 22:25 ` [PATCH v2 0/3] x86: faster mb()+other barrier.h tweaks H. Peter Anvin
2016-01-12 22:25 ` H. Peter Anvin
2016-01-26 8:20 ` Michael S. Tsirkin
2016-01-26 8:20 ` Michael S. Tsirkin
2016-01-26 21:37 ` H. Peter Anvin
2016-01-26 21:37 ` H. Peter Anvin
2016-01-27 14:07 ` Michael S. Tsirkin
2016-01-27 14:07 ` Michael S. Tsirkin
2016-01-27 14:14 ` Peter Zijlstra
2016-01-27 14:14 ` Peter Zijlstra
2016-01-27 14:18 ` Michael S. Tsirkin
2016-01-27 14:18 ` Michael S. Tsirkin
2018-10-11 17:37 ` Andres Freund
2018-10-11 18:11 ` Michael S. Tsirkin [this message]
2018-10-11 18:21 ` Andres Freund
2018-10-11 18:11 ` Michael S. Tsirkin
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=20181011140837-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=andres@anarazel.de \
--cc=dave@stgolabs.net \
--cc=dbueso@suse.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=virtualization@lists.linux-foundation.org \
--cc=x86@kernel.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.