On Tue, Feb 02, 2016 at 12:20:25PM +0000, Will Deacon wrote: [...] > > > > > > > > Besides, Will, what's the reason of having a locally transitive chain > > > > termination? Because on some architectures RELEASE->DEPENDENCY pairs may > > > > not be locally transitive? > > > > > > 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. > > I think the same applies to <ctrl>, which seems to match your later > example. >
Thank you ;-) Now I understand why you want thoses pairings to be locally transitive chain terminations, they have more subtle requirements to extend locally transitive chains and slight different behaviors on different architectures. It's better for us to put them aside until we figure out thoses subtle requirements and different behaviors. Regards, Boqun > Will
signature.asc
Description: PGP signature