The "max" model can be treated the same way as "host" model in
general.
Signed-off-by: Daniel P. Berrangé <berrange(a)redhat.com>
---
src/qemu/qemu_capabilities.c | 17 ++++++++++++++++-
src/qemu/qemu_command.c | 10 +++++++---
src/qemu/qemu_domain.c | 11 +++++++----
src/qemu/qemu_driver.c | 2 ++
src/qemu/qemu_process.c | 8 +++++---
src/qemu/qemu_validate.c | 13 +++++++++++--
tests/domaincapsdata/qemu_2.10.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.10.0-tcg.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.10.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.11.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml | 7 ++++++-
.../domaincapsdata/qemu_2.12.0-virt.aarch64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.12.0.aarch64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.12.0.ppc64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.12.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.9.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.9.0-tcg.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_2.9.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_3.0.0.ppc64.xml | 7 ++++++-
tests/domaincapsdata/qemu_3.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_3.1.0.ppc64.xml | 7 ++++++-
tests/domaincapsdata/qemu_3.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml | 7 ++++++-
.../domaincapsdata/qemu_4.0.0-virt.aarch64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.0.0.aarch64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.0.0.ppc64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.0.0.s390x.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 7 ++++++-
.../domaincapsdata/qemu_4.2.0-virt.aarch64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.2.0.aarch64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.2.0.ppc64.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.2.0.s390x.xml | 7 ++++++-
tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 7 ++++++-
.../domaincapsdata/qemu_5.0.0-virt.aarch64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.0.0.aarch64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.0.0.ppc64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 7 ++++++-
.../domaincapsdata/qemu_5.2.0-virt.aarch64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.2.0.aarch64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.2.0.ppc64.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.2.0.s390x.xml | 7 ++++++-
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 7 ++++++-
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 7 ++++++-
.../qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_2.11.0.x86_64.xml | 1 +
.../caps_2.12.0.aarch64.xml | 1 +
.../qemucapabilitiesdata/caps_2.12.0.ppc64.xml | 1 +
.../qemucapabilitiesdata/caps_2.12.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 +
.../qemucapabilitiesdata/caps_3.0.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 +
.../qemucapabilitiesdata/caps_3.1.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_4.0.0.aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 +
.../qemucapabilitiesdata/caps_4.0.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_4.1.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_4.2.0.aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 +
.../qemucapabilitiesdata/caps_4.2.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_5.0.0.aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 +
.../qemucapabilitiesdata/caps_5.0.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_5.1.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_5.2.0.aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml | 1 +
.../qemucapabilitiesdata/caps_5.2.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_6.0.0.x86_64.xml | 1 +
.../qemuxml2argvdata/cpu-cache-passthrough3.err | 2 +-
94 files changed, 431 insertions(+), 73 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index ecfb313d0a..58e28c3bd1 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -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;
}
@@ -2985,7 +2987,7 @@ virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps,
virQEMUCapsAccelPtr accel,
qemuMonitorPtr mon)
{
- qemuMonitorCPUDefsPtr defs = accel->cpuModels;
+ qemuMonitorCPUDefsPtr defs;
size_t i;
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_DEFINITIONS))
@@ -2994,6 +2996,7 @@ virQEMUCapsProbeQMPCPUDefinitions(virQEMUCapsPtr qemuCaps,
if (virQEMUCapsFetchCPUDefinitions(mon, qemuCaps->arch, &accel->cpuModels)
< 0)
return -1;
+ defs = accel->cpuModels;
for (i = 0; i < defs->ncpus; i++) {
if (STREQ_NULLABLE(defs->cpus[i].name, "max")) {
virQEMUCapsSet(qemuCaps, QEMU_CAPS_CPU_MAX);
@@ -5977,6 +5980,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)) {
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 059563d92f..f0333d4f1a 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -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");
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index d89aea340b..53b4fb5f4f 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -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;
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index c34af6b7d1..b0d907fbb3 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -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"));
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 30cfa4d485..8d21e45218 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -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
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index bf4ac19104..62a915e946 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -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;
@@ -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;
diff --git a/tests/domaincapsdata/qemu_2.10.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_2.10.0-q35.x86_64.xml
index e0314996c9..06507fdbd6 100644
--- a/tests/domaincapsdata/qemu_2.10.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.10.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.10.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_2.10.0-tcg.x86_64.xml
index 3a1cec224d..83f1b8eeb3 100644
--- a/tests/domaincapsdata/qemu_2.10.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.10.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.10.0.x86_64.xml
b/tests/domaincapsdata/qemu_2.10.0.x86_64.xml
index f6db53e80d..1402425134 100644
--- a/tests/domaincapsdata/qemu_2.10.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.10.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml
index 742ea30a66..df11d98164 100644
--- a/tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml
index f077ca15e6..dd4b9eb3a5 100644
--- a/tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.11.0.x86_64.xml
b/tests/domaincapsdata/qemu_2.11.0.x86_64.xml
index fb683a82eb..bed878437b 100644
--- a/tests/domaincapsdata/qemu_2.11.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.11.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml
index d0512678e0..d23323e896 100644
--- a/tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml
index d45c3cdcda..b7ed014bcc 100644
--- a/tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.12.0-virt.aarch64.xml
b/tests/domaincapsdata/qemu_2.12.0-virt.aarch64.xml
index 8a6fbe9fe1..6fb16ea733 100644
--- a/tests/domaincapsdata/qemu_2.12.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_2.12.0-virt.aarch64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.12.0.aarch64.xml
b/tests/domaincapsdata/qemu_2.12.0.aarch64.xml
index 05fbfef6e8..890354eb5f 100644
--- a/tests/domaincapsdata/qemu_2.12.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_2.12.0.aarch64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.12.0.ppc64.xml
b/tests/domaincapsdata/qemu_2.12.0.ppc64.xml
index 310bef66c7..cbd2452163 100644
--- a/tests/domaincapsdata/qemu_2.12.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_2.12.0.ppc64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.12.0.x86_64.xml
b/tests/domaincapsdata/qemu_2.12.0.x86_64.xml
index 456d13d8a0..ac3a707d08 100644
--- a/tests/domaincapsdata/qemu_2.12.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.12.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.9.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_2.9.0-q35.x86_64.xml
index 440529443c..797b970040 100644
--- a/tests/domaincapsdata/qemu_2.9.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.9.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.9.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_2.9.0-tcg.x86_64.xml
index 77bf8f4c52..b47c426f1b 100644
--- a/tests/domaincapsdata/qemu_2.9.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.9.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_2.9.0.x86_64.xml
b/tests/domaincapsdata/qemu_2.9.0.x86_64.xml
index 50ef469308..7716e9d381 100644
--- a/tests/domaincapsdata/qemu_2.9.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_2.9.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml
index 72bc877529..648244d37a 100644
--- a/tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml
index 9354167ff7..fde3f445a3 100644
--- a/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_3.0.0.ppc64.xml
b/tests/domaincapsdata/qemu_3.0.0.ppc64.xml
index d8d8147bf4..7b8a2ab484 100644
--- a/tests/domaincapsdata/qemu_3.0.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_3.0.0.ppc64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_3.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_3.0.0.x86_64.xml
index 6561a9695c..898c191ab7 100644
--- a/tests/domaincapsdata/qemu_3.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_3.0.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml
index d57f1c78b3..97912f8119 100644
--- a/tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml
index be3d54d87e..02c9ce1d38 100644
--- a/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_3.1.0.ppc64.xml
b/tests/domaincapsdata/qemu_3.1.0.ppc64.xml
index 0f5be3a16f..a3c1d7be5d 100644
--- a/tests/domaincapsdata/qemu_3.1.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_3.1.0.ppc64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_3.1.0.x86_64.xml
b/tests/domaincapsdata/qemu_3.1.0.x86_64.xml
index 859f973a40..2819a22ee0 100644
--- a/tests/domaincapsdata/qemu_3.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_3.1.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml
index b873149375..d17068003d 100644
--- a/tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml
index 7a793ef8f9..e65b8c21a3 100644
--- a/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.0.0-virt.aarch64.xml
b/tests/domaincapsdata/qemu_4.0.0-virt.aarch64.xml
index e9eb19e39d..282a6b50da 100644
--- a/tests/domaincapsdata/qemu_4.0.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_4.0.0-virt.aarch64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.0.0.aarch64.xml
b/tests/domaincapsdata/qemu_4.0.0.aarch64.xml
index 43a492508f..a84b0d7a7a 100644
--- a/tests/domaincapsdata/qemu_4.0.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_4.0.0.aarch64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.0.0.ppc64.xml
b/tests/domaincapsdata/qemu_4.0.0.ppc64.xml
index 44d6cd5c2e..15a536f21c 100644
--- a/tests/domaincapsdata/qemu_4.0.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_4.0.0.ppc64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.0.0.s390x.xml
b/tests/domaincapsdata/qemu_4.0.0.s390x.xml
index 7730f801ec..5a8f0eaf69 100644
--- a/tests/domaincapsdata/qemu_4.0.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_4.0.0.s390x.xml
@@ -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'/>
diff --git a/tests/domaincapsdata/qemu_4.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_4.0.0.x86_64.xml
index a06a9fdc79..e11d68f2ee 100644
--- a/tests/domaincapsdata/qemu_4.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.0.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml
index 5081f5175e..f3784936fb 100644
--- a/tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml
index 717b6b1b5a..d759d00c61 100644
--- a/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.1.0.x86_64.xml
b/tests/domaincapsdata/qemu_4.1.0.x86_64.xml
index 1094ff4685..3578e27c11 100644
--- a/tests/domaincapsdata/qemu_4.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.1.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
index d76e5a9a18..8083dd2aeb 100644
--- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
index b90d300c42..ec001884b7 100644
--- a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
b/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
index 814b2cf3f5..2ad2936d59 100644
--- a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml
b/tests/domaincapsdata/qemu_4.2.0.aarch64.xml
index 2af62f7c07..72739fd752 100644
--- a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.aarch64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml
b/tests/domaincapsdata/qemu_4.2.0.ppc64.xml
index 9523743b18..69cbd260cf 100644
--- a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.ppc64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_4.2.0.s390x.xml
b/tests/domaincapsdata/qemu_4.2.0.s390x.xml
index b5d92836d5..17b28d84d1 100644
--- a/tests/domaincapsdata/qemu_4.2.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.s390x.xml
@@ -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'/>
diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
index 682225719d..be1be2dcae 100644
--- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
index e376a36df0..590742b8d1 100644
--- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
index 7aa9dbdf0c..37aaa6f3da 100644
--- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
b/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
index 10ca10ae7d..b762c7108f 100644
--- a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml
b/tests/domaincapsdata/qemu_5.0.0.aarch64.xml
index 524e483834..c9561c6d92 100644
--- a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.aarch64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml
b/tests/domaincapsdata/qemu_5.0.0.ppc64.xml
index e2339d7600..fd088bd2d5 100644
--- a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.ppc64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
index 49a8481f24..16f3459c48 100644
--- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
index b654c741f4..41c59755df 100644
--- a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
index 8033951a6f..9afba50265 100644
--- a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
index 3a4a2fc071..ab3a7474d3 100644
--- a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 8f9e620b04..0ac7b1240f 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 44e93d11d5..7fcbb8c0f2 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
b/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
index 1f837587f7..a5b063e7f8 100644
--- a/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.2.0.aarch64.xml
b/tests/domaincapsdata/qemu_5.2.0.aarch64.xml
index 524e483834..c9561c6d92 100644
--- a/tests/domaincapsdata/qemu_5.2.0.aarch64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.aarch64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml
b/tests/domaincapsdata/qemu_5.2.0.ppc64.xml
index f121524f2a..93e020302e 100644
--- a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.ppc64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_5.2.0.s390x.xml
b/tests/domaincapsdata/qemu_5.2.0.s390x.xml
index e146dfb769..d54f88fc10 100644
--- a/tests/domaincapsdata/qemu_5.2.0.s390x.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.s390x.xml
@@ -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'/>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 331117c39c..35dca37b28 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 819c5dde97..ae0d4a6264 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index d4b9e48275..bd2c51f34b 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -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>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 1661a48934..e104a6b2d8 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
index 2fe1888535..579b88c17f 100644
--- a/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
index 56024cfa5d..2c475d73bc 100644
--- a/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
index 3ff1bf3ff8..d4dad8d8b2 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
index 9311bf66db..f441354054 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
index df0ce08da6..d54e305e2e 100644
--- a/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
index d984ad3066..37406cb4a9 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
index dc0e8d637e..28cc662bfb 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
index 2ea912eaad..09bdbf7fc7 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml
b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml
index b05f16983c..11d8d668de 100644
--- a/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
index 8a892a5da3..7c7216826b 100644
--- a/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
index c28ada94fb..c44d5c6ddf 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
index a15edd87de..7094752b29 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
index 4a10deea01..8cc3a51eeb 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
index c580d29374..23a150348d 100644
--- a/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
index 26eb3786e8..792ea9e9e9 100644
--- a/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
index 4c149e79bb..20549834eb 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
index a0019f2a20..58c73f0a98 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
index 41db85be6b..9bfdb2ce63 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
index 976eaf347b..10dc5d562e 100644
--- a/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
index b9963bbd7e..3e8c87ece3 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
index 46edacd44b..49479c215f 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
index f5bcc9ed83..99155d9097 100644
--- a/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
index f7d0be69cb..9e1fa172df 100644
--- a/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
index 6b40141f15..1f015c2da1 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
index 298139cdd7..bc94e50e59 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
index b59404230c..8ca989facb 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
index 52a755ffc8..c85362e1db 100644
--- a/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
@@ -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>
diff --git a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
index 0cb94e02e8..0f2467609c 100644
--- a/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
@@ -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>
diff --git a/tests/qemuxml2argvdata/cpu-cache-passthrough3.err
b/tests/qemuxml2argvdata/cpu-cache-passthrough3.err
index 2d64cda5e5..6581f143d6 100644
--- a/tests/qemuxml2argvdata/cpu-cache-passthrough3.err
+++ b/tests/qemuxml2argvdata/cpu-cache-passthrough3.err
@@ -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
--
2.29.2