This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] [PATCH] Rename device backend value when xm save/migrate

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] Rename device backend value when xm save/migrate
From: Rikiya Ayukawa <ayukawa.rikiya@xxxxxxxxxxxxxx>
Date: Fri, 07 Aug 2009 12:01:49 +0900
Delivery-date: Thu, 06 Aug 2009 20:02:27 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird (Windows/20090302)
Hi all,

The Xend has a problem that it often fails to restore/migrate
a PV domain whose device backends are partly a driver domain.

Because a checkpoint of the PV domain has device backend value as
domain id, you can restore/migrate the PV domain only when a driver
domain is the same id as device backend value in the checkpoint.

I attached a patch to fix it by renaming device backend value in a
checkpoint from domain id to domain name when xm save/migrate.

This patch doesn't rename device backend value if the value is 0,
which is Domain-0, so the checkpoint format is compatible if you use
only Domain-0 as device backend.

Signed-off-by: Rikiya Ayukawa <ayukawa.rikiya@xxxxxxxxxxxxxx>

 XendCheckpoint.py |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

Best Regards,
Rikiya Ayukawa
diff -r 68e8b8379244 tools/python/xen/xend/XendCheckpoint.py
--- a/tools/python/xen/xend/XendCheckpoint.py   Sun Aug 02 13:43:15 2009 +0100
+++ b/tools/python/xen/xend/XendCheckpoint.py   Thu Aug 06 17:02:23 2009 +0900
@@ -66,6 +66,8 @@
 def save(fd, dominfo, network, live, dst, checkpoint=False, node=-1):
+    from xen.xend import XendDomain
         if not os.path.isdir("/var/lib/xen"):
@@ -80,6 +82,18 @@
     if node > -1:
         insert_after(sxprep,'vcpus',['node', str(node)])
+    for device_sxp in sxp.children(sxprep, 'device'):
+        backend = sxp.child(device_sxp[1], 'backend')
+        if backend == None:
+            continue
+        bkdominfo = XendDomain.instance().domain_lookup_nr(backend[1])
+        if bkdominfo == None:
+            raise XendError("Could not find backend: %s" % backend[1])
+        if bkdominfo.getDomid() == XendDomain.DOM0_ID:
+            # Skip for compatibility of checkpoint data format
+            continue
+        backend[1] = bkdominfo.getName()
     config = sxp.to_string(sxprep)
     domain_name = dominfo.getName()
Xen-devel mailing list
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] Rename device backend value when xm save/migrate, Rikiya Ayukawa <=