Re: [RFC][PATCH] mips: Fix arch_spin_unlock()

From: Boqun Feng
Date: Tue Feb 02 2016 - 08:19:00 EST


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

Attachment: signature.asc
Description: PGP signature