Xen 
 
Home About Xen.org Xen Xen Summit Wiki Mailing List Bug Tracker Xen Downloads
 
   
 

xen-ia64-devel

[Xen-ia64-devel] [PATCH 1/3] pv_ops save/restore xen part

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-ia64-devel] [PATCH 1/3] pv_ops save/restore xen part
From: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Date: Tue, 10 Jun 2008 17:24:16 +0900
Cc: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Delivery-date: Tue, 10 Jun 2008 01:27:14 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.17+20080114 (2008-01-14)
# 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>

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;

Attachment: 17770_4af5059f4e0d.patch
Description: Text Data

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-ia64-devel] [PATCH 1/3] pv_ops save/restore xen part, Isaku Yamahata <=