On Tue, Feb 02, 2016 at 10:06:36AM -0800, Linus Torvalds wrote: > On Tue, Feb 2, 2016 at 9:51 AM, Will Deacon <will.dea...@arm.com> wrote: > > > > Given that the vast majority of weakly ordered architectures respect > > address dependencies, I would expect all of them to be hurt if they > > were forced to use barrier instructions instead, even those where the > > microarchitecture is fairly strongly ordered in practice. > > I do wonder if it would be all that noticeable, though. I don't think > we've really had benchmarks. > > For example, most of the RCU list traversal shows up on x86 - where > loads are already acquires. But they show up not because of that, but > because a RCU list traversal is pretty much always going to take the > cache miss. > > So it would actually be interesting to just try it - what happens to > kernel-centric benchmarks (which are already fairly rare) on arm if we > change the rcu_dereference() to be a smp_load_acquire()? > > Because maybe nothing happens at all. I don't think we've ever tried it.
FWIW, and this is by no means conclusive, I hacked that up quickly and ran hackbench a few times on the nearest idle arm64 system. The results were consistently ~4% slower using acquire for rcu_dereference. Will