|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
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(). 
 
I'll give hvm_get_guest_time() another look. 
 
-Dave 
 
 
 
-----Original Message----- 
From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx] 
Sent: Wed 6/11/2008 4:30 AM 
To: Dave Winchell 
Cc: dan.magenheimer@xxxxxxxxxx; Ben Guthro; xen-devel 
Subject: 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
 
 |   
 
 | 
    | 
  
  
    |   | 
    |