ia64/xen-unstable

changeset 16690:01adaec882d4

hvm: time: Fixes to 'SYNC' (no_missed_ticks_pending) timer handling.
Based on a patch by Dave Winchell <dwinchell@virtualiron.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Jan 08 14:31:23 2008 +0000 (2008-01-08)
parents 66db23ecd562
children 1ffa3c1335a4
files xen/arch/x86/hvm/vpt.c
line diff
     1.1 --- a/xen/arch/x86/hvm/vpt.c	Tue Jan 08 13:57:45 2008 +0000
     1.2 +++ b/xen/arch/x86/hvm/vpt.c	Tue Jan 08 14:31:23 2008 +0000
     1.3 @@ -167,6 +167,7 @@ static void pt_timer_fn(void *data)
     1.4      pt_lock(pt);
     1.5  
     1.6      pt->pending_intr_nr++;
     1.7 +    pt->do_not_freeze = 0;
     1.8  
     1.9      if ( !pt->one_shot )
    1.10      {
    1.11 @@ -253,7 +254,6 @@ void pt_intr_post(struct vcpu *v, struct
    1.12          return;
    1.13      }
    1.14  
    1.15 -    pt->do_not_freeze = 0;
    1.16      pt->irq_issued = 0;
    1.17  
    1.18      if ( pt->one_shot )
    1.19 @@ -264,7 +264,8 @@ void pt_intr_post(struct vcpu *v, struct
    1.20      }
    1.21      else
    1.22      {
    1.23 -        if ( mode_is(v->domain, one_missed_tick_pending) )
    1.24 +        if ( mode_is(v->domain, one_missed_tick_pending) ||
    1.25 +             mode_is(v->domain, no_missed_ticks_pending) )
    1.26          {
    1.27              pt->last_plt_gtime = hvm_get_guest_time(v);
    1.28              pt->pending_intr_nr = 0; /* 'collapse' all missed ticks */