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

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

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

Xen patchbot-unstable
# HG changeset patch
# User [hidden email]
# 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 <[hidden email]>
---
 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
[hidden email]
http://lists.xensource.com/xen-changelog