[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 |