]> xenbits.xensource.com Git - xen.git/commitdiff
libxl: refuse to try and migrate an HVM guest using qemu-xen
authorIan Campbell <Ian.Campbell@citrix.com>
Wed, 25 Jul 2012 16:39:14 +0000 (17:39 +0100)
committerIan Campbell <Ian.Campbell@citrix.com>
Wed, 25 Jul 2012 16:39:14 +0000 (17:39 +0100)
libxl/qemu-upstream currently do not collude together to enable log-dirty mode
and therefore migrations are unsafe. Refuse to even try for now.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Committed-by: Ian Campbell <ian.campbell@citrix.com>
tools/libxl/libxl.c

index 7e8bf45cf54668e51fbf195db731edafe35ae8ab..7b9916594808caee43353e238bd6848bc116bd67 100644 (file)
@@ -765,6 +765,23 @@ int libxl_domain_suspend(libxl_ctx *ctx, uint32_t domid, int fd, int flags,
         goto out_err;
     }
 
+    if (type == LIBXL_DOMAIN_TYPE_HVM && flags & LIBXL_SUSPEND_LIVE) {
+        switch (libxl__device_model_version_running(gc, domid)) {
+        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
+            LOG(ERROR,
+                "cannot live migrate HVM domains with qemu-xen device-model");
+            rc = ERROR_FAIL;
+            goto out_err;
+        case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
+            /* No problem */
+            break;
+        case -1:
+            rc = ERROR_FAIL;
+            goto out_err;
+        default: abort();
+        }
+    }
+
     libxl__domain_suspend_state *dss;
     GCNEW(dss);