diff options
author | Laine Stump <laine@redhat.com> | 2022-07-21 02:03:49 -0400 |
---|---|---|
committer | Laine Stump <laine@redhat.com> | 2022-07-21 11:12:46 -0400 |
commit | 25883cd5f0b188f2417f294b7d219a77b219f7c2 (patch) | |
tree | fd42b5991c7e0f8f599c67e5c3329cfdc1530c48 | |
parent | 2dd5587f1dc8e2cf4e6e0a4e4cf576b8183b33cd (diff) | |
download | libvirt-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.c | 11 |
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. |