mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-28 19:41:16 +00:00
Also filter out non-migratable features out of host-passthrough
Commit de0aeaf
filtered them out from the host-model features,
to allow host-model to be migratable by default.
Even though they are not passed to QEMU for host-passthrough,
(and not enabled by default) filter them out too
so the user does not think the domain has them.
https://bugzilla.redhat.com/show_bug.cgi?id=1147584
This commit is contained in:
parent
ec5f817f2e
commit
f53bb1af90
@ -2068,7 +2068,8 @@ x86UpdateCustom(virCPUDefPtr guest,
|
||||
|
||||
static int
|
||||
x86UpdateHostModel(virCPUDefPtr guest,
|
||||
const virCPUDef *host)
|
||||
const virCPUDef *host,
|
||||
bool passthrough)
|
||||
{
|
||||
virCPUDefPtr oldguest = NULL;
|
||||
const struct x86_map *map;
|
||||
@ -2076,8 +2077,6 @@ x86UpdateHostModel(virCPUDefPtr guest,
|
||||
size_t i;
|
||||
int ret = -1;
|
||||
|
||||
guest->match = VIR_CPU_MATCH_EXACT;
|
||||
|
||||
if (!(map = virCPUx86GetMap()))
|
||||
goto cleanup;
|
||||
|
||||
@ -2100,8 +2099,7 @@ x86UpdateHostModel(virCPUDefPtr guest,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < oldguest->nfeatures; i++) {
|
||||
for (i = 0; !passthrough && i < oldguest->nfeatures; i++) {
|
||||
if (virCPUDefUpdateFeature(guest,
|
||||
oldguest->features[i].name,
|
||||
oldguest->features[i].policy) < 0)
|
||||
@ -2125,12 +2123,12 @@ x86Update(virCPUDefPtr guest,
|
||||
return x86UpdateCustom(guest, host);
|
||||
|
||||
case VIR_CPU_MODE_HOST_MODEL:
|
||||
return x86UpdateHostModel(guest, host);
|
||||
guest->match = VIR_CPU_MATCH_EXACT;
|
||||
return x86UpdateHostModel(guest, host, false);
|
||||
|
||||
case VIR_CPU_MODE_HOST_PASSTHROUGH:
|
||||
guest->match = VIR_CPU_MATCH_MINIMUM;
|
||||
virCPUDefFreeModel(guest);
|
||||
return virCPUDefCopyModel(guest, host, true);
|
||||
return x86UpdateHostModel(guest, host, true);
|
||||
|
||||
case VIR_CPU_MODE_LAST:
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user