Messages in this thread | | | Date | Wed, 14 Jul 2010 14:11:34 -0700 | From | Jeremy Fitzhardinge <> | Subject | Re: [patch 134/149] x86, paravirt: Add a global synchronization point for pvclock |
| |
On 07/14/2010 01:50 PM, H. Peter Anvin wrote: > invlpg, in the general case, definitely needs a memory clobber even if > volatiles are ordered, since it needs to be ordered with regards to > non-volatile memory operations. >
Yes. I'd say write_crX should need that too, since they can they can have a variety global effects on how memory addressing works (from tlb flush to switching pagetable formats).
> Note that memory clobbers don't by themselves enforce ordering since > they don't prevent the ordering of memory clobbers with respect to each > other. >
Hm. Well we do *definitely* rely on that. I guess technically we'd need at least a memory input on the asm to be ordered with respect to a memory clobber. But that doesn't seem to have been an issue (or perhaps its mixed up with the secret semantics of asm volatile).
J
| |