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

[Xen-changelog] [xen-unstable] [IA64] vcpu hot-plug/remove for VTi



# HG changeset patch
# User awilliam@xxxxxxxxxxxx
# Date 1171666145 25200
# Node ID b0aeca575dfb6b203fb83cd165304654335dc0cb
# Parent  9529d667d0426eb02077cb33abdc6e434e27d293
[IA64] vcpu hot-plug/remove for VTi

Return to SAL added for VTi by adding a new SAL (OEM defined) function.
Using this patch I was able to hot-add/hot-remove under linux (in fact
virtualized hot).

Signed-off-by: Tristan Gingold <tgingold@xxxxxxx>
---
 xen/arch/ia64/vmx/vlsapic.c   |    4 +++-
 xen/arch/ia64/xen/fw_emul.c   |    4 ++++
 xen/include/asm-ia64/dom_fw.h |    3 +++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff -r 9529d667d042 -r b0aeca575dfb xen/arch/ia64/vmx/vlsapic.c
--- a/xen/arch/ia64/vmx/vlsapic.c       Thu Feb 15 14:09:39 2007 -0700
+++ b/xen/arch/ia64/vmx/vlsapic.c       Fri Feb 16 15:49:05 2007 -0700
@@ -672,7 +672,9 @@ static void vlsapic_write_ipi(VCPU *vcpu
     if (targ == NULL)
         panic_domain(NULL, "Unknown IPI cpu\n");
 
-    if (!test_bit(_VCPUF_initialised, &targ->vcpu_flags)) {
+    if (!test_bit(_VCPUF_initialised, &targ->vcpu_flags) ||
+        test_bit(_VCPUF_down, &targ->vcpu_flags)) {
+
         struct pt_regs *targ_regs = vcpu_regs(targ);
         struct vcpu_guest_context c;
 
diff -r 9529d667d042 -r b0aeca575dfb xen/arch/ia64/xen/fw_emul.c
--- a/xen/arch/ia64/xen/fw_emul.c       Thu Feb 15 14:09:39 2007 -0700
+++ b/xen/arch/ia64/xen/fw_emul.c       Fri Feb 16 15:49:05 2007 -0700
@@ -370,6 +370,10 @@ sal_emulator (long index, unsigned long 
                break;
            case SAL_UPDATE_PAL:
                printk("*** CALLED SAL_UPDATE_PAL.  IGNORED...\n");
+               break;
+           case SAL_XEN_SAL_RETURN:
+               if (!test_and_set_bit(_VCPUF_down, &current->vcpu_flags))
+                       vcpu_sleep_nosync(current);
                break;
            default:
                printk("*** CALLED SAL_ WITH UNKNOWN INDEX.  IGNORED...\n");
diff -r 9529d667d042 -r b0aeca575dfb xen/include/asm-ia64/dom_fw.h
--- a/xen/include/asm-ia64/dom_fw.h     Thu Feb 15 14:09:39 2007 -0700
+++ b/xen/include/asm-ia64/dom_fw.h     Fri Feb 16 15:49:05 2007 -0700
@@ -180,6 +180,9 @@
 
 #define EFI_MEMDESC_VERSION            1
 
+/* Additionnal OEM SAL.  */
+#define SAL_XEN_SAL_RETURN     0x02000000
+
 extern struct ia64_pal_retval xen_pal_emulator(u64, u64, u64, u64);
 extern struct sal_ret_values sal_emulator (long index, unsigned long in1, 
unsigned long in2, unsigned long in3, unsigned long in4, unsigned long in5, 
unsigned long in6, unsigned long in7);
 extern struct ia64_pal_retval pal_emulator_static (unsigned long);

_______________________________________________
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®.