qemu: wire up support for maximum CPU model

The "max" model can be treated the same way as "host" model in general.

Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2021-02-05 18:35:10 +00:00
parent 9c89cc5d6f
commit c32f172d12
94 changed files with 430 additions and 73 deletions

View File

@ -2336,6 +2336,8 @@ virQEMUCapsIsCPUModeSupported(virQEMUCapsPtr qemuCaps,
return cpus && cpus->ncpus > 0;
case VIR_CPU_MODE_MAXIMUM:
return virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_MAX);
case VIR_CPU_MODE_LAST:
break;
}
@ -5983,6 +5985,18 @@ virQEMUCapsFillDomainCPUCaps(virQEMUCapsPtr qemuCaps,
VIR_TRISTATE_SWITCH_OFF);
}
if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttype,
VIR_CPU_MODE_MAXIMUM,
domCaps->machine)) {
domCaps->cpu.maximum = true;
domCaps->cpu.maximumMigratable.report = true;
VIR_DOMAIN_CAPS_ENUM_SET(domCaps->cpu.maximumMigratable,
VIR_TRISTATE_SWITCH_ON);
VIR_DOMAIN_CAPS_ENUM_SET(domCaps->cpu.maximumMigratable,
VIR_TRISTATE_SWITCH_OFF);
}
if (virQEMUCapsIsCPUModeSupported(qemuCaps, hostarch, domCaps->virttype,
VIR_CPU_MODE_HOST_MODEL,
domCaps->machine)) {

View File

@ -6316,7 +6316,11 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
switch ((virCPUMode) cpu->mode) {
case VIR_CPU_MODE_HOST_PASSTHROUGH:
virBufferAddLit(buf, "host");
case VIR_CPU_MODE_MAXIMUM:
if (cpu->mode == VIR_CPU_MODE_MAXIMUM)
virBufferAddLit(buf, "max");
else
virBufferAddLit(buf, "host");
if (def->os.arch == VIR_ARCH_ARMV7L &&
driver->hostarch == VIR_ARCH_AARCH64) {
@ -6356,7 +6360,6 @@ qemuBuildCpuModelArgStr(virQEMUDriverPtr driver,
virBufferAdd(buf, cpu->model, -1);
break;
case VIR_CPU_MODE_MAXIMUM:
case VIR_CPU_MODE_LAST:
break;
}
@ -6601,7 +6604,8 @@ qemuBuildCpuCommandLine(virCommandPtr cmd,
}
if (hostOff &&
def->cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH &&
(def->cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH ||
def->cpu->mode == VIR_CPU_MODE_MAXIMUM) &&
virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_CACHE))
virBufferAddLit(&buf, ",host-cache-info=off");

View File

@ -4049,12 +4049,14 @@ qemuDomainDefCPUPostParse(virDomainDefPtr def,
break;
case VIR_CPU_CACHE_MODE_PASSTHROUGH:
if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH) {
if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH &&
def->cpu->mode != VIR_CPU_MODE_MAXIMUM) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("CPU cache mode '%s' can only be used with "
"'%s' CPUs"),
"'%s' / '%s' CPUs"),
virCPUCacheModeTypeToString(cache->mode),
virCPUModeTypeToString(VIR_CPU_MODE_HOST_PASSTHROUGH));
virCPUModeTypeToString(VIR_CPU_MODE_HOST_PASSTHROUGH),
virCPUModeTypeToString(VIR_CPU_MODE_MAXIMUM));
return -1;
}
@ -4136,6 +4138,7 @@ qemuDomainDefCPUPostParse(virDomainDefPtr def,
switch ((virCPUMode) def->cpu->mode) {
case VIR_CPU_MODE_HOST_PASSTHROUGH:
case VIR_CPU_MODE_MAXIMUM:
def->cpu->check = VIR_CPU_CHECK_NONE;
break;
@ -4151,7 +4154,6 @@ qemuDomainDefCPUPostParse(virDomainDefPtr def,
def->cpu->check = VIR_CPU_CHECK_PARTIAL;
break;
case VIR_CPU_MODE_MAXIMUM:
case VIR_CPU_MODE_LAST:
break;
}
@ -6304,6 +6306,7 @@ qemuDomainObjCheckCPUTaint(virQEMUDriverPtr driver,
switch (obj->def->cpu->mode) {
case VIR_CPU_MODE_HOST_PASSTHROUGH:
case VIR_CPU_MODE_MAXIMUM:
if (incomingMigration)
qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_HOST_CPU, logCtxt);
break;

View File

@ -12314,6 +12314,8 @@ qemuConnectCompareHypervisorCPU(virConnectPtr conn,
if (!cpu->model) {
if (cpu->mode == VIR_CPU_MODE_HOST_PASSTHROUGH) {
cpu->model = g_strdup("host");
} else if (cpu->mode == VIR_CPU_MODE_MAXIMUM) {
cpu->model = g_strdup("max");
} else {
virReportError(VIR_ERR_INVALID_ARG, "%s",
_("cpu parameter is missing a model name"));

View File

@ -6156,8 +6156,9 @@ qemuProcessUpdateGuestCPU(virDomainDefPtr def,
if (virCPUConvertLegacy(hostarch, def->cpu) < 0)
return -1;
/* nothing to update for host-passthrough */
if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH) {
/* nothing to update for host-passthrough / maximum */
if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH &&
def->cpu->mode != VIR_CPU_MODE_MAXIMUM) {
g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
if (def->cpu->check == VIR_CPU_CHECK_PARTIAL &&
@ -8055,7 +8056,8 @@ qemuProcessRefreshCPUMigratability(virQEMUDriverPtr driver,
bool migratable;
int rc;
if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH)
if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH &&
def->cpu->mode != VIR_CPU_MODE_MAXIMUM)
return 0;
/* If the cpu.migratable capability is present, the migratable attribute

View File

@ -255,10 +255,11 @@ qemuValidateDomainDefFeatures(const virDomainDef *def,
case VIR_DOMAIN_FEATURE_KVM:
if (def->kvm_features[VIR_DOMAIN_KVM_DEDICATED] == VIR_TRISTATE_SWITCH_ON &&
(!def->cpu || def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH)) {
(!def->cpu || (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH &&
def->cpu->mode != VIR_CPU_MODE_MAXIMUM))) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("kvm-hint-dedicated=on is only applicable "
"for cpu host-passthrough"));
"for cpu host-passthrough / maximum"));
return -1;
}
break;
@ -383,7 +384,7 @@ qemuValidateDomainDefCpu(virQEMUDriverPtr driver,
!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_MIGRATABLE)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Migratable attribute for host-passthrough "
"CPU is not supported by QEMU binary"));
"CPU is not supported by this QEMU binary"));
return -1;
}
break;
@ -396,7 +397,15 @@ qemuValidateDomainDefCpu(virQEMUDriverPtr driver,
* CUSTOM.
*/
break;
case VIR_CPU_MODE_MAXIMUM:
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_CPU_MAX)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("maximum CPU is not supported by QEMU binary"));
return -1;
}
break;
case VIR_CPU_MODE_CUSTOM:
case VIR_CPU_MODE_LAST:
break;

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Haswell-noTSX</model>
<vendor>Intel</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Opteron_G4</model>
<vendor>AMD</vendor>

View File

@ -33,7 +33,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Haswell-noTSX</model>
<vendor>Intel</vendor>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client</model>
<vendor>Intel</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC</model>
<vendor>AMD</vendor>

View File

@ -33,7 +33,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client</model>
<vendor>Intel</vendor>

View File

@ -35,7 +35,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Haswell-noTSX</model>
<vendor>Intel</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC</model>
<vendor>AMD</vendor>

View File

@ -32,7 +32,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='yes'>
<model usable='unknown'>pxa262</model>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='yes'>
<model usable='unknown'>pxa262</model>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='allow'>POWER8</model>
</mode>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Haswell-noTSX</model>
<vendor>Intel</vendor>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client</model>
<vendor>Intel</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Opteron_G4</model>
<vendor>AMD</vendor>

View File

@ -33,7 +33,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client</model>
<vendor>Intel</vendor>

View File

@ -35,7 +35,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC</model>
<vendor>AMD</vendor>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='allow'>POWER8</model>
</mode>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -35,7 +35,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC</model>
<vendor>AMD</vendor>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='allow'>POWER8</model>
</mode>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -35,7 +35,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC</model>
<vendor>AMD</vendor>

View File

@ -32,7 +32,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='yes'>
<model usable='unknown'>pxa262</model>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='yes'>
<model usable='unknown'>pxa262</model>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='allow'>POWER8</model>
</mode>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>z14.2-base</model>
<feature policy='require' name='aen'/>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -35,7 +35,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC-IBPB</model>
<vendor>AMD</vendor>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -35,7 +35,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC-IBPB</model>
<vendor>AMD</vendor>

View File

@ -32,7 +32,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='yes'>
<model usable='unknown'>pxa262</model>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='yes'>
<model usable='unknown'>pxa262</model>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='allow'>POWER8</model>
</mode>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>gen15a-base</model>
<feature policy='require' name='aen'/>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -35,7 +35,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC</model>
<vendor>AMD</vendor>

View File

@ -32,7 +32,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='yes'>
<model usable='unknown'>cortex-a9</model>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='yes'>
<model usable='unknown'>cortex-a9</model>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='allow'>POWER8</model>
</mode>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>Skylake-Client-IBRS</model>
<vendor>Intel</vendor>

View File

@ -35,7 +35,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC-Rome</model>
<vendor>AMD</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC</model>
<vendor>AMD</vendor>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC-Rome</model>
<vendor>AMD</vendor>

View File

@ -35,7 +35,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC-Rome</model>
<vendor>AMD</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC</model>
<vendor>AMD</vendor>

View File

@ -32,7 +32,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='yes'>
<model usable='unknown'>cortex-a9</model>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='no'/>
<mode name='custom' supported='yes'>
<model usable='unknown'>cortex-a9</model>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='allow'>POWER8</model>
</mode>

View File

@ -30,7 +30,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>gen15a-base</model>
<feature policy='require' name='aen'/>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC-Rome</model>
<vendor>AMD</vendor>

View File

@ -35,7 +35,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC-Rome</model>
<vendor>AMD</vendor>

View File

@ -29,7 +29,12 @@
</os>
<cpu>
<mode name='host-passthrough' supported='no'/>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC</model>
<vendor>AMD</vendor>

View File

@ -34,7 +34,12 @@
<value>off</value>
</enum>
</mode>
<mode name='maximum' supported='no'/>
<mode name='maximum' supported='yes'>
<enum name='maximumMigratable'>
<value>on</value>
<value>off</value>
</enum>
</mode>
<mode name='host-model' supported='yes'>
<model fallback='forbid'>EPYC-Rome</model>
<vendor>AMD</vendor>

View File

@ -193,6 +193,7 @@
<flag name='fsdev.createmode'/>
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='cpu-max'/>
<version>2010000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100287</microcodeVersion>

View File

@ -200,6 +200,7 @@
<flag name='fsdev.createmode'/>
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='cpu-max'/>
<version>2011000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100288</microcodeVersion>

View File

@ -167,6 +167,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>2012000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>61700289</microcodeVersion>

View File

@ -168,6 +168,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>2011090</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>42900289</microcodeVersion>

View File

@ -211,6 +211,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>2011090</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100289</microcodeVersion>

View File

@ -186,6 +186,7 @@
<flag name='migration-param.downtime'/>
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='cpu-max'/>
<version>2009000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100247</microcodeVersion>

View File

@ -170,6 +170,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>2012050</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>42900239</microcodeVersion>

View File

@ -217,6 +217,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>3000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100239</microcodeVersion>

View File

@ -175,6 +175,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>3000091</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>42900240</microcodeVersion>

View File

@ -220,6 +220,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>3000092</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100240</microcodeVersion>

View File

@ -181,6 +181,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>4000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>61700240</microcodeVersion>

View File

@ -189,6 +189,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>4000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>42900240</microcodeVersion>

View File

@ -145,6 +145,7 @@
<flag name='migration-param.xbzrle-cache-size'/>
<flag name='fsdev.createmode'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>4000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>39100240</microcodeVersion>

View File

@ -226,6 +226,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>4000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100240</microcodeVersion>

View File

@ -233,6 +233,7 @@
<flag name='am53c974'/>
<flag name='virtio-pmem-pci'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>4001000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100241</microcodeVersion>

View File

@ -194,6 +194,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>4001050</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>61700242</microcodeVersion>

View File

@ -195,6 +195,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>4001050</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>42900242</microcodeVersion>

View File

@ -156,6 +156,7 @@
<flag name='blockdev-hostdev-scsi'/>
<flag name='fsdev.createmode'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>4002000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>39100242</microcodeVersion>

View File

@ -242,6 +242,7 @@
<flag name='am53c974'/>
<flag name='virtio-pmem-pci'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>4002000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100242</microcodeVersion>

View File

@ -204,6 +204,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>5000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>61700241</microcodeVersion>

View File

@ -213,6 +213,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>5000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>42900241</microcodeVersion>

View File

@ -249,6 +249,7 @@
<flag name='am53c974'/>
<flag name='virtio-pmem-pci'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>5000000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100241</microcodeVersion>

View File

@ -251,6 +251,7 @@
<flag name='am53c974'/>
<flag name='virtio-pmem-pci'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>5001000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100242</microcodeVersion>

View File

@ -208,6 +208,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>5002000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>61700243</microcodeVersion>

View File

@ -215,6 +215,7 @@
<flag name='dc390'/>
<flag name='am53c974'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>5002000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>42900243</microcodeVersion>

View File

@ -163,6 +163,7 @@
<flag name='netdev.vhost-vdpa'/>
<flag name='fsdev.createmode'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>5002000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>39100243</microcodeVersion>

View File

@ -252,6 +252,7 @@
<flag name='am53c974'/>
<flag name='virtio-pmem-pci'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>5002000</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100243</microcodeVersion>

View File

@ -253,6 +253,7 @@
<flag name='virtio-pmem-pci'/>
<flag name='vhost-user-fs.bootindex'/>
<flag name='vhost-user-blk'/>
<flag name='cpu-max'/>
<version>5002050</version>
<kvmVersion>0</kvmVersion>
<microcodeVersion>43100242</microcodeVersion>

View File

@ -1 +1 @@
unsupported configuration: CPU cache mode 'passthrough' can only be used with 'host-passthrough' CPUs
unsupported configuration: CPU cache mode 'passthrough' can only be used with 'host-passthrough' / 'maximum' CPUs