On Tue, Feb 02, 2016 at 09:12:37AM -0800, Paul E. McKenney wrote: > On Tue, Feb 02, 2016 at 12:20:25PM +0000, Will Deacon wrote: > > On Tue, Feb 02, 2016 at 08:12:30PM +0800, Boqun Feng wrote: > > > On Tue, Feb 02, 2016 at 11:45:59AM +0000, Will Deacon wrote: > > > > Well, the following ISA2 test is permitted on ARM: > > > > > > > > > > > > P0: > > > > Wx=1 > > > > WyRel=1 // rcu_assign_pointer > > > > > > > > P1: > > > > Ry=1 // rcu_dereference > > > > > > What if a <addr> dependency is added here? Same result? > > > > Right, that fixes it. So if we're only considering things like: > > > > rcu_dereference > > <addr> > > RELEASE > > > > then local transitivity should be preserved. > > Whew!!! ;-) > > > I think the same applies to <ctrl>, which seems to match your later > > example. > > Could you please check?
I should've been more concrete here: it does indeed apply if you replace the <addr> with a <ctrl> in the snippet above, I just hadn't got Boqun's example paged in and didn't want to commit on the examples being identical. Will