Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [HVM] Ensure that, if AP is blocked, it i

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [HVM] Ensure that, if AP is blocked, it is woken by interrupt delivered by IOAPIC.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 27 Oct 2006 17:20:14 +0000
Delivery-date: Fri, 27 Oct 2006 10:20:24 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxxx
# Node ID ee140fbcb88df2e55259b0c6519de7645641468a
# Parent  a1939d76c0e8e27bdac5233df7bd78c004ea8deb
[HVM] Ensure that, if AP is blocked, it is woken by interrupt delivered by 
IOAPIC.

This fixes 64-bit SMP Windows 2k3 boot.

Signed-off-by: Xiaowei Yang <xiaowei.yang@xxxxxxxxx>
Signed-off-by: Xin Li <xin.b.li@xxxxxxxxx>
---
 xen/arch/x86/hvm/vioapic.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff -r a1939d76c0e8 -r ee140fbcb88d xen/arch/x86/hvm/vioapic.c
--- a/xen/arch/x86/hvm/vioapic.c        Fri Oct 27 18:00:03 2006 +0100
+++ b/xen/arch/x86/hvm/vioapic.c        Fri Oct 27 18:02:40 2006 +0100
@@ -39,6 +39,7 @@
 #include <asm/hvm/vpic.h>
 #include <asm/hvm/support.h>
 #include <asm/current.h>
+#include <asm/event.h>
 
 /* HACK: Route IRQ0 only to VCPU0 to prevent time jumps. */
 #define IRQ0_SPECIAL_ROUTING 1
@@ -455,9 +456,10 @@ static void ioapic_deliver(hvm_vioapic_t
 #endif
             target = apic_round_robin(s->domain, dest_mode,
                                       vector, deliver_bitmask);
-        if (target)
+        if (target) {
             ioapic_inj_irq(s, target, vector, trig_mode, delivery_mode);
-        else
+            vcpu_kick(target->vcpu);
+        } else
             HVM_DBG_LOG(DBG_LEVEL_IOAPIC,
               "null round robin mask %x vector %x delivery_mode %x\n",
               deliver_bitmask, vector, dest_LowestPrio);
@@ -478,8 +480,10 @@ static void ioapic_deliver(hvm_vioapic_t
             else
 #endif
                 target = s->lapic_info[bit];
-            if (target)
+            if (target) {
                 ioapic_inj_irq(s, target, vector, trig_mode, delivery_mode);
+                vcpu_kick(target->vcpu);
+            }
         }
         break;
     }

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [HVM] Ensure that, if AP is blocked, it is woken by interrupt delivered by IOAPIC., Xen patchbot-unstable <=