[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [IA64] fix VTi hangs



# HG changeset patch
# User awilliam@xxxxxxxxxxx
# 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@xxxxxxxxx>
---
 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@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.