List Info

Thread: pv_ops save/restore xen part




pv_ops save/restore xen part
user name
2008-06-10 03:24:16
# HG changeset patch
# User Isaku Yamahata <yamahatavalinux.co.jp>
# Date 1213080887 -32400
# Node ID 4af5059f4e0d8072a1dfd6740496af8d055d4443
# Parent  1feb98eb64eff4c97bf185047790f80e67501b3d
[IA64] add VGCF_online flag for XEN_DOMCTL_setvcpucontext to
make vcpu online.

Extend the XEN_DOMCTL_setvcpucontext hypercall with
VGCF_online
to make vcpu online.
This extension is necessary for save/restore support of
pv_ops linux guest.
Currently Linux kernel makes vcpus offline except a boot
processor
(vcpu = 0) when saving so that only vcpu = 0 is made online
by the tools
stack when restoring. Then Linux kernel itself makes other
vcpus up.
On the other hand, pv_ops linux guest doesn't make vcpus
offline.
It uses stop_machine_run() keeping all vcpus online.
Thus all of vcpus context must be saved/restored and all
vcpus needs to be
made online by the tools stack. So there needs a way to make
vcpu online.
Add VGCF_online flag to the XEN_DOMCTL_setvcpucontext
hypercall
following the x86 way.

Signed-off-by: Isaku Yamahata <yamahatavalinux.co.jp>

diff --git a/xen/arch/ia64/xen/domain.c
b/xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c
+++ b/xen/arch/ia64/xen/domain.c
 -1200,7
+1200,8 
 
 		v->is_initialised = 1;
 		/* Auto-online VCPU0 when it is initialised. */
-		if (v->vcpu_id == 0)
+		if (v->vcpu_id == 0 || (c.nat != NULL && 
+					c.nat->flags & VGCF_online))
 			clear_bit(_VPF_down, &v->pause_flags);
 	}
 
diff --git a/xen/include/public/arch-ia64.h
b/xen/include/public/arch-ia64.h
--- a/xen/include/public/arch-ia64.h
+++ b/xen/include/public/arch-ia64.h
 -391,6
+391,7 
 struct vcpu_guest_context {
 #define VGCF_EXTRA_REGS (1UL << 1)	/* Set extra regs.
 */
 #define VGCF_SET_CR_IRR (1UL << 2)	/* Set
cr_irr[0:3]. */
+#define VGCF_online     (1UL << 3)  /* make this vcpu
online */
     unsigned long flags;       /* VGCF_* flags */
 
     struct vcpu_guest_context_regs regs;

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devellists.xensource.com
http://list
s.xensource.com/xen-ia64-devel
  
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )