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. Thanks. -- Regards/Gruss, Boris. ECO tip #101: Trim your mails when you reply. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization