WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [IA64] All vcpus can sync interrupts from

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] All vcpus can sync interrupts from qemu
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 30 Aug 2006 22:10:46 +0000
Delivery-date: Wed, 30 Aug 2006 15:15:06 -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 awilliam@xxxxxxxxxxx
# Node ID 1612675ca4cf11a0c64c78058886e7bf5cd926f8
# Parent  65042393b3e9b74cdb9cc9b5acd05173c192e350
[IA64] All vcpus can sync interrupts from qemu

Previously only vcpu0 can sync interrupt from qemu.
Now all vcpus can sync.

Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx>
---
 xen/arch/ia64/vmx/vmx_init.c    |    3 +++
 xen/arch/ia64/vmx/vmx_support.c |    4 +++-
 xen/include/asm-ia64/domain.h   |    2 ++
 xen/include/asm-ia64/vmx_vpd.h  |    6 ++++++
 4 files changed, 14 insertions(+), 1 deletion(-)

diff -r 65042393b3e9 -r 1612675ca4cf xen/arch/ia64/vmx/vmx_init.c
--- a/xen/arch/ia64/vmx/vmx_init.c      Thu Aug 24 11:48:35 2006 -0600
+++ b/xen/arch/ia64/vmx/vmx_init.c      Thu Aug 24 11:52:23 2006 -0600
@@ -445,6 +445,9 @@ void vmx_setup_platform(struct domain *d
        memset(&d->shared_info->evtchn_mask[0], 0xff,
            sizeof(d->shared_info->evtchn_mask));
 
+       /* initiate spinlock for pass virq */
+       spin_lock_init(&d->arch.arch_vmx.virq_assist_lock);
+
        /* Initialize the virtual interrupt lines */
        vmx_virq_line_init(d);
 
diff -r 65042393b3e9 -r 1612675ca4cf xen/arch/ia64/vmx/vmx_support.c
--- a/xen/arch/ia64/vmx/vmx_support.c   Thu Aug 24 11:48:35 2006 -0600
+++ b/xen/arch/ia64/vmx/vmx_support.c   Thu Aug 24 11:52:23 2006 -0600
@@ -73,8 +73,10 @@ void vmx_intr_assist(struct vcpu *v)
 {
 #ifdef V_IOSAPIC_READY
     /* Confirm virtual interrupt line signals, and set pending bits in vpd */
-    if(v->vcpu_id==0)
+    if (spin_trylock(&v->domain->arch.arch_vmx.virq_assist_lock)) {
         vmx_virq_line_assist(v);
+        spin_unlock(&v->domain->arch.arch_vmx.virq_assist_lock);
+    }
 #endif
     return;
 }
diff -r 65042393b3e9 -r 1612675ca4cf xen/include/asm-ia64/domain.h
--- a/xen/include/asm-ia64/domain.h     Thu Aug 24 11:48:35 2006 -0600
+++ b/xen/include/asm-ia64/domain.h     Thu Aug 24 11:52:23 2006 -0600
@@ -137,6 +137,8 @@ struct arch_domain {
     atomic64_t shadow_fault_count;
 
     struct last_vcpu last_vcpu[NR_CPUS];
+
+    struct arch_vmx_domain arch_vmx; /* Virtual Machine Extensions */
 };
 #define INT_ENABLE_OFFSET(v)             \
     (sizeof(vcpu_info_t) * (v)->vcpu_id + \
diff -r 65042393b3e9 -r 1612675ca4cf xen/include/asm-ia64/vmx_vpd.h
--- a/xen/include/asm-ia64/vmx_vpd.h    Thu Aug 24 11:48:35 2006 -0600
+++ b/xen/include/asm-ia64/vmx_vpd.h    Thu Aug 24 11:52:23 2006 -0600
@@ -27,6 +27,7 @@
 #include <asm/vtm.h>
 #include <asm/vmx_platform.h>
 #include <public/xen.h>
+#include <xen/spinlock.h>
 
 #define VPD_SHIFT      17      /* 128K requirement */
 #define VPD_SIZE       (1 << VPD_SHIFT)
@@ -72,6 +73,11 @@ struct ivt_debug{
 };
 #define IVT_DEBUG_MAX 128
 #endif
+
+struct arch_vmx_domain {
+    spinlock_t virq_assist_lock; /* spinlock for pass virq */
+};
+
 struct arch_vmx_struct {
 //     vpd_t       *vpd;
     vtime_t        vtm;

_______________________________________________
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] [IA64] All vcpus can sync interrupts from qemu, Xen patchbot-unstable <=