Re: [patch 134/149] x86, paravirt: Add a global synchronization point for pvclock

Jeremy Fitzhardinge
2010-07-14T21:11:37Z

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