Re: [PATCH v3 0/4] x86: faster mb()+documentation tweaks

From: Borislav Petkov
Date: Thu Jan 14 2016 - 06:39:56 EST

On Wed, Jan 13, 2016 at 10:12:22PM +0200, 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 that we use on older CPUs.
> So let's use the locked variant everywhere.
> While I was at it, I found some inconsistencies in comments in
> arch/x86/include/asm/barrier.h
> The documentation fixes are included first - I verified that
> they do not change the generated code at all. They should be
> safe to apply directly.
> The last patch changes mb() to lock addl. I was unable to
> measure a speed difference on a macro benchmark,
> but I noted that even doing
> #define mb() barrier()
> seems to make no difference for most benchmarks
> (it causes hangs sometimes, of course).
> HPA asked that the last patch is deferred until we hear back from
> intel, which makes sense of course. So it needs HPA's ack.
> 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) changes
> I came up with myself.
> Changes from v2:
> add patch adding cc clobber for addl
> tweak commit log for patch 2
> use addl at SP-4 (as opposed to SP) to reduce data dependencies
> Michael S. Tsirkin (4):
> x86: add cc clobber for addl
> x86: drop a comment left over from X86_OOSTORE
> x86: tweak the comment about use of wmb for IO

First three look ok to me regardless of what happens with 4. So applied.



ECO tip #101: Trim your mails when you reply.