mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 19:02:25 +00:00
qemu: Taint cpu host-passthrough only after migration
From a discussion last year[1], Dan recommended libvirt drop the tain flag for cpu host-passthrough, unless the VM has been migrated. This repurposes the existing host-cpu taint flag to do just that. [1]: https://www.redhat.com/archives/virt-tools-list/2019-February/msg00041.html https://bugzilla.redhat.com/show_bug.cgi?id=1673098 Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Cole Robinson <crobinso@redhat.com>
This commit is contained in:
parent
1bd16c6cf7
commit
0fa5c23865
@ -2736,7 +2736,7 @@ typedef enum {
|
||||
VIR_DOMAIN_TAINT_SHELL_SCRIPTS, /* Network configuration using opaque shell scripts */
|
||||
VIR_DOMAIN_TAINT_DISK_PROBING, /* Relying on potentially unsafe disk format probing */
|
||||
VIR_DOMAIN_TAINT_EXTERNAL_LAUNCH, /* Externally launched guest domain */
|
||||
VIR_DOMAIN_TAINT_HOST_CPU, /* Host CPU passthrough in use */
|
||||
VIR_DOMAIN_TAINT_HOST_CPU, /* Host CPU passthrough in use after migration */
|
||||
VIR_DOMAIN_TAINT_HOOK, /* Domain (possibly) changed via hook script */
|
||||
VIR_DOMAIN_TAINT_CDROM_PASSTHROUGH,/* CDROM passthrough */
|
||||
VIR_DOMAIN_TAINT_CUSTOM_DTB, /* Custom device tree blob was specified */
|
||||
|
@ -6115,7 +6115,8 @@ void qemuDomainObjTaint(virQEMUDriverPtr driver,
|
||||
|
||||
void qemuDomainObjCheckTaint(virQEMUDriverPtr driver,
|
||||
virDomainObjPtr obj,
|
||||
qemuDomainLogContextPtr logCtxt)
|
||||
qemuDomainLogContextPtr logCtxt,
|
||||
bool incomingMigration)
|
||||
{
|
||||
size_t i;
|
||||
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
|
||||
@ -6144,7 +6145,9 @@ void qemuDomainObjCheckTaint(virQEMUDriverPtr driver,
|
||||
VIR_DOMAIN_TAINT_CUSTOM_HYPERVISOR_FEATURE, logCtxt);
|
||||
}
|
||||
|
||||
if (obj->def->cpu && obj->def->cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH)
|
||||
if (obj->def->cpu &&
|
||||
obj->def->cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH &&
|
||||
incomingMigration)
|
||||
qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_HOST_CPU, logCtxt);
|
||||
|
||||
for (i = 0; i < obj->def->ndisks; i++)
|
||||
|
@ -567,7 +567,8 @@ void qemuDomainObjTaint(virQEMUDriverPtr driver,
|
||||
|
||||
void qemuDomainObjCheckTaint(virQEMUDriverPtr driver,
|
||||
virDomainObjPtr obj,
|
||||
qemuDomainLogContextPtr logCtxt);
|
||||
qemuDomainLogContextPtr logCtxt,
|
||||
bool incomingMigration);
|
||||
void qemuDomainObjCheckDiskTaint(virQEMUDriverPtr driver,
|
||||
virDomainObjPtr obj,
|
||||
virDomainDiskDefPtr disk,
|
||||
|
@ -6852,7 +6852,7 @@ qemuProcessLaunch(virConnectPtr conn,
|
||||
|
||||
qemuLogOperation(vm, "starting up", cmd, logCtxt);
|
||||
|
||||
qemuDomainObjCheckTaint(driver, vm, logCtxt);
|
||||
qemuDomainObjCheckTaint(driver, vm, logCtxt, incoming != NULL);
|
||||
|
||||
qemuDomainLogContextMarkPosition(logCtxt);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user