x86: pvclock: add note about rdtsc barriers
authorMarcelo Tosatti <mtosatti@redhat.com>
Wed, 28 Nov 2012 01:28:53 +0000 (23:28 -0200)
committerMarcelo Tosatti <mtosatti@redhat.com>
Wed, 28 Nov 2012 01:29:08 +0000 (23:29 -0200)
As noted by Gleb, not advertising SSE2 support implies
no RDTSC barriers.

Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
arch/x86/include/asm/pvclock.h

index ea27a8d..63f9167 100644 (file)
@@ -74,6 +74,12 @@ unsigned __pvclock_read_cycles(const struct pvclock_vcpu_time_info *src,
        u8 ret_flags;
 
        version = src->version;
+       /* Note: emulated platforms which do not advertise SSE2 support
+        * result in kvmclock not using the necessary RDTSC barriers.
+        * Without barriers, it is possible that RDTSC instruction reads from
+        * the time stamp counter outside rdtsc_barrier protected section
+        * below, resulting in violation of monotonicity.
+        */
        rdtsc_barrier();
        offset = pvclock_get_nsec_offset(src);
        ret = src->system_time + offset;