[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 8/8] evtchn: add FIFO-based event channel hypercalls and port ops
On 20/03/2013 15:54, "David Vrabel" <david.vrabel@xxxxxxxxxx> wrote: >>>> You might have to use an atomic_t or similar if the consumer might be >>>> confused by partial updates. >>> >>> I have assumed that reads and writes to 32-bit words are atomic on all >>> interesting architectures. >> >> True, but unless you explicitly tell it to, the compiler isn't required >> to update a 32-bit variable using 32-bit operations, or to avoid >> weird-looking intermediate values. It seems unlikely that it would do >> anything other than straightforwardly write the new value, but we've seen >> compilers do some unlikely things. :) > > Ok. Looks like I need to use write_atomic() to update the head in Xen. Yes, I introduced {read,write}_atomic() precisely to deal with this possibility. No doubt we are missing some places it ought to be used, but at least we fix them when we spot them and new code should make use of them. It also provides some form of documentation about memory locations involved in lock-free communication/synchronisation. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |