On Tue, May 24, 2016 at 09:08:01 +0200, Paolo Bonzini wrote: > On 23/05/2016 19:09, Emilio G. Cota wrote: > > PS. And really equating smp_wmb/rmb to release/acquire as we have under > > #ifdef __ATOMIC is hard to justify, other than to please tsan. > > That only makes a difference on arm64, right? > > acquire release rmb wmb > x86 -- -- -- -- > power lwsync lwsync lwsync lwsync > armv7 dmb dmb dmb dmb > arm64 dmb ishld dmb ish dmb ishld dmb ishst > ia64 -- -- -- --
Yes. I now see why we're defining rmb/wmb based on acquire/release: it's quite convenient given that the compiler provides them, and the (tiny) differences in practice are not worth the trouble of adding asm for them. So I take back my comment =) The gains of getting rid of the consume barrier from atomic_rcu_read are clear though; updated patch to follow. Thanks, Emilio