|
|
|
|
|
|
|
|
|
|
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().
-- 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
|
|
|
|
|