[PATCH 2/2] qemu: Disallow migration to older -numa if newer is used

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



As advertised in the previous commit, migration from -numa
memdev= to -numa mem= is not supported and results in error.
Fortunately, we can check whether the destination has used the
style we told it to, or if the corresponding flag in the
migration cookie is missing then we know we are talking to older
daemon which would have used the old approach. Anyway, let's deny
migration then.

Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx>
---
 src/qemu/qemu_migration.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index 423713e00b..dde491b720 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -2424,7 +2424,8 @@ qemuMigrationDstPrepareAny(virQEMUDriverPtr driver,
         cookieFlags = 0;
     } else {
         cookieFlags = QEMU_MIGRATION_COOKIE_GRAPHICS |
-                      QEMU_MIGRATION_COOKIE_CAPS;
+                      QEMU_MIGRATION_COOKIE_CAPS |
+                      QEMU_MIGRATION_COOKIE_PRIVATE;
     }
 
     if (flags & VIR_MIGRATE_POSTCOPY &&
@@ -3549,10 +3550,18 @@ qemuMigrationSrcRun(virQEMUDriverPtr driver,
                                  cookiein, cookieinlen,
                                  cookieFlags |
                                  QEMU_MIGRATION_COOKIE_GRAPHICS |
-                                 QEMU_MIGRATION_COOKIE_CAPS);
+                                 QEMU_MIGRATION_COOKIE_CAPS |
+                                 QEMU_MIGRATION_COOKIE_PRIVATE);
     if (!mig)
         goto error;
 
+    if (priv->forceNewNuma == VIR_TRISTATE_BOOL_YES &&
+        !(mig->priv && mig->priv->forceNewNuma == VIR_TRISTATE_BOOL_YES)) {
+        virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+                       _("Migration to older numa unsupported"));
+        goto error;
+    }
+
     if (qemuMigrationSrcGraphicsRelocate(driver, vm, mig, graphicsuri) < 0)
         VIR_WARN("unable to provide data for graphics client relocation");
 
-- 
2.26.2




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux