Mailing List Archive

[xen-unstable] [IA64] fix VTi hangs
# HG changeset patch
# User awilliam@xenbuild.aw
# Node ID 647d3208704a684d5b36af1e03ef636240dc550c
# Parent 5586fd904efa8aa08072739bf23f86512c594def
[IA64] fix VTi hangs

In some scenarios, xen_timer_interrupt will not set machine itm,
this may make this LP not receive timer interrupt any more.

Signed-off-by: Anthony Xu <anthony.xu@intel.com>
---
xen/arch/ia64/xen/xentime.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletion(-)

diff -r 5586fd904efa -r 647d3208704a xen/arch/ia64/xen/xentime.c
--- a/xen/arch/ia64/xen/xentime.c Mon Aug 28 13:14:52 2006 -0600
+++ b/xen/arch/ia64/xen/xentime.c Mon Aug 28 13:18:36 2006 -0600
@@ -109,6 +109,7 @@ xen_timer_interrupt (int irq, void *dev_
xen_timer_interrupt (int irq, void *dev_id, struct pt_regs *regs)
{
unsigned long new_itm, old_itc;
+ int f_setitm = 0;

#if 0
#define HEARTBEAT_FREQ 16 // period in seconds
@@ -129,11 +130,12 @@ xen_timer_interrupt (int irq, void *dev_
vcpu_pend_timer(current);
// ensure another timer interrupt happens even if domain doesn't
vcpu_set_next_timer(current);
+ f_setitm = 1;
}

new_itm = local_cpu_data->itm_next;

- if (!VMX_DOMAIN(current) && !time_after(ia64_get_itc(), new_itm))
+ if (f_setitm && !time_after(ia64_get_itc(), new_itm))
return;

while (1) {

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