mirror of https://gitee.com/openkylin/libvirt.git
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>
This commit is contained in:
parent
2dd5587f1d
commit
25883cd5f0
|
@ -1494,6 +1494,14 @@ qemuMigrationSrcIsAllowed(virQEMUDriver *driver,
|
||||||
_("cannot migrate domain: %s"), reasons);
|
_("cannot migrate domain: %s"), reasons);
|
||||||
return false;
|
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) {
|
if (remote) {
|
||||||
|
@ -1520,9 +1528,6 @@ qemuMigrationSrcIsAllowed(virQEMUDriver *driver,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!qemuMigrationSrcIsAllowedHostdev(vm->def))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (vm->def->cpu) {
|
if (vm->def->cpu) {
|
||||||
/* QEMU blocks migration and save with invariant TSC enabled
|
/* QEMU blocks migration and save with invariant TSC enabled
|
||||||
* unless TSC frequency is explicitly set.
|
* unless TSC frequency is explicitly set.
|
||||||
|
|
Loading…
Reference in New Issue