[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] add VGCF_online flag for XEN_DOMCTL_setvcpucontext to make vcpu online.
# HG changeset patch # User Isaku Yamahata <yamahata@xxxxxxxxxxxxx> # 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 <yamahata@xxxxxxxxxxxxx> --- xen/arch/ia64/xen/domain.c | 3 ++- xen/include/public/arch-ia64.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff -r 1feb98eb64ef -r 4af5059f4e0d xen/arch/ia64/xen/domain.c --- a/xen/arch/ia64/xen/domain.c Tue Jun 10 15:08:06 2008 +0900 +++ b/xen/arch/ia64/xen/domain.c Tue Jun 10 15:54:47 2008 +0900 @@ -1200,7 +1200,8 @@ int arch_set_info_guest(struct vcpu *v, 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 -r 1feb98eb64ef -r 4af5059f4e0d xen/include/public/arch-ia64.h --- a/xen/include/public/arch-ia64.h Tue Jun 10 15:08:06 2008 +0900 +++ b/xen/include/public/arch-ia64.h Tue Jun 10 15:54:47 2008 +0900 @@ -391,6 +391,7 @@ struct vcpu_guest_context { 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-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |