[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 0/2] Improve hpet accuracy



I implemented the monotonicity guarantee within hvm_get_guest_time(). We
don't need or want get_s_time_mono().

 -- Keir

On 10/6/08 18:13, "Dave Winchell" <dwinchell@xxxxxxxxxxxxxxx> wrote:

> Keir, Dan:
> 
> Although I plan to break up the patch, etc., I'm posting
> this fix to the patch for anyone who might be interested.
> 
> thanks,
> Dave
> # This is a BitKeeper generated diff -Nru style patch.
> #
> # ChangeSet
> #   2008/06/10 12:20:48-04:00 winchell@xxxxxxxxxxxxxxxxxxxxxxxxxx
> #   vi-patch: xen-hpet
> #   
> #   Bug Id: 6057 
> #   
> #   Reviewed by: Robert
> #   
> #   SUMMARY: Fix wrap issue in monotonic s_time().
> # 
> # xen/arch/x86/time.c
> #   2008/06/10 12:20:48-04:00 winchell@xxxxxxxxxxxxxxxxxxxxxxxxxx +3 -2
> #   Fix wrap issue in monotonic s_time().
> # 
> diff -Nru a/xen/arch/x86/time.c b/xen/arch/x86/time.c
> --- a/xen/arch/x86/time.c 2008-06-10 13:08:39 -04:00
> +++ b/xen/arch/x86/time.c 2008-06-10 13:08:39 -04:00
> @@ -534,7 +534,7 @@
>      u64 count;
>      unsigned long flags;
>      struct cpu_time *t = &this_cpu(cpu_time);
> -    u64 tsc, delta;
> +    u64 tsc, delta, diff;
>      s_time_t now;
>  
>      if(hpet_main_counter_phys_avoid_hdw || !hpet_physical_inited) {
> @@ -542,7 +542,8 @@
>          rdtscll(tsc);
>          delta = tsc - t->local_tsc_stamp;
>          now = t->stime_local_stamp + scale_delta(delta, &t->tsc_scale);
> -        if(now > get_s_time_mon.last_ret)
> +        diff = (u64)now - (u64)get_s_time_mon.last_ret;
> +        if((s64)diff > (s64)0)
>              get_s_time_mon.last_ret = now;
>          else
>              now = get_s_time_mon.last_ret;



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.