debuggers.hg
changeset 16728: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>
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 */