On 10/24/2012 03:13 PM, Marcelo Tosatti wrote:
> Originally from Jeremy Fitzhardinge.
> 
> We can copy the information directly from "struct pvclock_vcpu_time_info", 
> remove pvclock_shadow_time.
> 
> Signed-off-by: Marcelo Tosatti <mtosa...@redhat.com>
> 
>  
>  unsigned long pvclock_tsc_khz(struct pvclock_vcpu_time_info *src)
> @@ -90,21 +54,20 @@ void pvclock_resume(void)
>  
>  cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
>  {
> -     struct pvclock_shadow_time shadow;
>       unsigned version;
>       cycle_t ret, offset;
>       u64 last;
>  
>       do {
> -             version = pvclock_get_time_values(&shadow, src);
> +             version = src->version;
>               rdtsc_barrier();
> -             offset = pvclock_get_nsec_offset(&shadow);
> -             ret = shadow.system_timestamp + offset;
> +             offset = pvclock_get_nsec_offset(src);
> +             ret = src->system_time + offset;
>               rdtsc_barrier();
> -     } while (version != src->version);
> +     } while ((src->version & 1) || version != src->version);
>  
>       if ((valid_flags & PVCLOCK_TSC_STABLE_BIT) &&
> -             (shadow.flags & PVCLOCK_TSC_STABLE_BIT))
> +             (src->flags & PVCLOCK_TSC_STABLE_BIT))
>               return ret;
>  

You're now reading PVCLOCK_TSC_STABLE outside the critical section.  We
could have live migrated to a tsc-unstable host and had this flag cleared.


-- 
error compiling committee.c: too many arguments to function
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to