Messages in this thread | | | Date | Tue, 2 Feb 2016 19:30:38 +0000 | From | Will Deacon <> | Subject | Re: [RFC][PATCH] mips: Fix arch_spin_unlock() |
| |
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.deacon@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
| |