summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaine Stump <laine@redhat.com>2022-07-21 02:03:49 -0400
committerLaine Stump <laine@redhat.com>2022-07-21 11:12:46 -0400
commit25883cd5f0b188f2417f294b7d219a77b219f7c2 (patch)
treefd42b5991c7e0f8f599c67e5c3329cfdc1530c48
parent2dd5587f1dc8e2cf4e6e0a4e4cf576b8183b33cd (diff)
downloadlibvirt-25883cd5f0b188f2417f294b7d219a77b219f7c2.tar.gz
qemu: skip hardcoded hostdev migration check if QEMU can do it for us
libvirt currently will block migration for any vfio-assigned device unless it is a network device that is associated with a virtio-net failover device (ie. if the hostdev object has a teaming->type == VIR_DOMAIN_NET_TEAMING_TYPE_TRANSIENT). In the future there will be other vfio devices that can be migrated, so we don't want to rely on this hardcoded block. QEMU 6.0+ will anyway inform us of any devices that will block migration (as a part of qemuDomainGetMigrationBlockers()), so we only need to do the hardcoded check in the case of old QEMU that can't provide that information. Signed-off-by: Laine Stump <laine@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
-rw-r--r--src/qemu/qemu_migration.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
index b470c69816..84befe7d39 100644
--- a/src/qemu/qemu_migration.c
+++ b/src/qemu/qemu_migration.c
@@ -1494,6 +1494,14 @@ qemuMigrationSrcIsAllowed(virQEMUDriver *driver,
_("cannot migrate domain: %s"), reasons);
return false;
}
+ } else {
+ /* checks here are for anything that doesn't need to be
+ * checked by libvirt if running QEMU that can be queried
+ * about migration blockers.
+ */
+
+ if (!qemuMigrationSrcIsAllowedHostdev(vm->def))
+ return false;
}
if (remote) {
@@ -1520,9 +1528,6 @@ qemuMigrationSrcIsAllowed(virQEMUDriver *driver,
return false;
}
- if (!qemuMigrationSrcIsAllowedHostdev(vm->def))
- return false;
-
if (vm->def->cpu) {
/* QEMU blocks migration and save with invariant TSC enabled
* unless TSC frequency is explicitly set.