|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen: arm: clear the exclusive monitor on exception return
On Thu, 2013-07-18 at 17:48 +0100, Tim Deegan wrote:
> At 09:31 +0100 on 18 Jul (1374139884), Ian Campbell wrote:
> > On Wed, 2013-07-17 at 20:48 +0100, Tim Deegan wrote:
> > > At 12:18 +0100 on 17 Jul (1374063531), Ian Campbell wrote:
> > > > Otherwise context switching between two vcpus which are contending the
> > > > same
> > > > lock can result in a spurious success.
> > >
> > > Shouldn't this go in ctxt_swicth_to(), then? I think any use that Xen
> > > itself makes of the monitor should end with it cleared.
> >
> > Our atomic read/set which we stole^Winherited from Linux relies on this
> > behaviour (interlocking with atomic_add_and_blah stuff).
> > /*
> > * On ARM, ordinary assignment (str instruction) doesn't clear the
> > local
> > * strex/ldrex monitor on some implementations. The reason we can
> > use it for
> > * atomic_set() is the clrex or dummy strex done on every exception
> > return.
> > */
>
> Ah, OK. So, Ack, but if it's not already committed can you edit the
> commit message to refer to this?
Applied, thanks. Commit message is now:
xen: arm: clear the exclusive monitor on exception return
Otherwise context switching between two vcpus which are contending the
same
lock can result in a spurious success.
Our spinlock and atomics code (which we get from Linux) rely on this
behaviour
because they use non-exclusive stores for single instruction operations
(e.g.
spin_unlock or atomic_set).
This is not required on ARMv8 since eret implicitly clears the monitor.
Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Acked-by: Tim Deegan <tim@xxxxxxx>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |