On 24/05/16 22:56, Emilio G. Cota wrote: > 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.
However, maybe it's not such a pain to maintain an optimized version for AArch64 in assembly :P Best, Sergey