提交 f53bb1af 编写于 作者: J Ján Tomko

Also filter out non-migratable features out of host-passthrough

Commit de0aeafe 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
上级 ec5f817f
...@@ -2068,7 +2068,8 @@ x86UpdateCustom(virCPUDefPtr guest, ...@@ -2068,7 +2068,8 @@ x86UpdateCustom(virCPUDefPtr guest,
static int static int
x86UpdateHostModel(virCPUDefPtr guest, x86UpdateHostModel(virCPUDefPtr guest,
const virCPUDef *host) const virCPUDef *host,
bool passthrough)
{ {
virCPUDefPtr oldguest = NULL; virCPUDefPtr oldguest = NULL;
const struct x86_map *map; const struct x86_map *map;
...@@ -2076,8 +2077,6 @@ x86UpdateHostModel(virCPUDefPtr guest, ...@@ -2076,8 +2077,6 @@ x86UpdateHostModel(virCPUDefPtr guest,
size_t i; size_t i;
int ret = -1; int ret = -1;
guest->match = VIR_CPU_MATCH_EXACT;
if (!(map = virCPUx86GetMap())) if (!(map = virCPUx86GetMap()))
goto cleanup; goto cleanup;
...@@ -2100,8 +2099,7 @@ x86UpdateHostModel(virCPUDefPtr guest, ...@@ -2100,8 +2099,7 @@ x86UpdateHostModel(virCPUDefPtr guest,
} }
} }
} }
for (i = 0; !passthrough && i < oldguest->nfeatures; i++) {
for (i = 0; i < oldguest->nfeatures; i++) {
if (virCPUDefUpdateFeature(guest, if (virCPUDefUpdateFeature(guest,
oldguest->features[i].name, oldguest->features[i].name,
oldguest->features[i].policy) < 0) oldguest->features[i].policy) < 0)
...@@ -2125,12 +2123,12 @@ x86Update(virCPUDefPtr guest, ...@@ -2125,12 +2123,12 @@ x86Update(virCPUDefPtr guest,
return x86UpdateCustom(guest, host); return x86UpdateCustom(guest, host);
case VIR_CPU_MODE_HOST_MODEL: 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: case VIR_CPU_MODE_HOST_PASSTHROUGH:
guest->match = VIR_CPU_MATCH_MINIMUM; guest->match = VIR_CPU_MATCH_MINIMUM;
virCPUDefFreeModel(guest); return x86UpdateHostModel(guest, host, true);
return virCPUDefCopyModel(guest, host, true);
case VIR_CPU_MODE_LAST: case VIR_CPU_MODE_LAST:
break; break;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册