]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: wire up support for maximum CPU model
authorDaniel P. Berrangé <berrange@redhat.com>
Fri, 5 Feb 2021 18:35:10 +0000 (18:35 +0000)
committerDaniel P. Berrangé <berrange@redhat.com>
Wed, 10 Feb 2021 11:44:48 +0000 (11:44 +0000)
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>
94 files changed:
src/qemu/qemu_capabilities.c
src/qemu/qemu_command.c
src/qemu/qemu_domain.c
src/qemu/qemu_driver.c
src/qemu/qemu_process.c
src/qemu/qemu_validate.c
tests/domaincapsdata/qemu_2.10.0-q35.x86_64.xml
tests/domaincapsdata/qemu_2.10.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_2.10.0.x86_64.xml
tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml
tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_2.11.0.x86_64.xml
tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml
tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_2.12.0-virt.aarch64.xml
tests/domaincapsdata/qemu_2.12.0.aarch64.xml
tests/domaincapsdata/qemu_2.12.0.ppc64.xml
tests/domaincapsdata/qemu_2.12.0.x86_64.xml
tests/domaincapsdata/qemu_2.9.0-q35.x86_64.xml
tests/domaincapsdata/qemu_2.9.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_2.9.0.x86_64.xml
tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_3.0.0.ppc64.xml
tests/domaincapsdata/qemu_3.0.0.x86_64.xml
tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_3.1.0.ppc64.xml
tests/domaincapsdata/qemu_3.1.0.x86_64.xml
tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_4.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_4.0.0.aarch64.xml
tests/domaincapsdata/qemu_4.0.0.ppc64.xml
tests/domaincapsdata/qemu_4.0.0.s390x.xml
tests/domaincapsdata/qemu_4.0.0.x86_64.xml
tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_4.1.0.x86_64.xml
tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml
tests/domaincapsdata/qemu_4.2.0.aarch64.xml
tests/domaincapsdata/qemu_4.2.0.ppc64.xml
tests/domaincapsdata/qemu_4.2.0.s390x.xml
tests/domaincapsdata/qemu_4.2.0.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml
tests/domaincapsdata/qemu_5.0.0.aarch64.xml
tests/domaincapsdata/qemu_5.0.0.ppc64.xml
tests/domaincapsdata/qemu_5.0.0.x86_64.xml
tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.1.0.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml
tests/domaincapsdata/qemu_5.2.0.aarch64.xml
tests/domaincapsdata/qemu_5.2.0.ppc64.xml
tests/domaincapsdata/qemu_5.2.0.s390x.xml
tests/domaincapsdata/qemu_5.2.0.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_6.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.11.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.12.0.aarch64.xml
tests/qemucapabilitiesdata/caps_2.12.0.ppc64.xml
tests/qemucapabilitiesdata/caps_2.12.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_3.1.0.ppc64.xml
tests/qemucapabilitiesdata/caps_3.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_4.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_4.0.0.s390x.xml
tests/qemucapabilitiesdata/caps_4.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_4.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_4.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_4.2.0.s390x.xml
tests/qemucapabilitiesdata/caps_4.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.0.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.0.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.0.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.1.0.x86_64.xml
tests/qemucapabilitiesdata/caps_5.2.0.aarch64.xml
tests/qemucapabilitiesdata/caps_5.2.0.ppc64.xml
tests/qemucapabilitiesdata/caps_5.2.0.s390x.xml
tests/qemucapabilitiesdata/caps_5.2.0.x86_64.xml
tests/qemucapabilitiesdata/caps_6.0.0.x86_64.xml
tests/qemuxml2argvdata/cpu-cache-passthrough3.err

index a61a2616c74bfd90dc32b4ae3c07758304504701..24328ad6262c3d99bc45beee4373197800ba5dc2 100644 (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)) {
index 059563d92f8ac1048553a28fed705c6546b1658d..f0333d4f1a57035db2ff3dafe973ce84d657df5e 100644 (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");
 
index d89aea340bb1682fb4b27ded1a9d76b686477c28..53b4fb5f4f3db711700c973838ce1a7ca38af7f7 100644 (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;
index c34af6b7d1eda80acb4853d089981a5952d96fbb..b0d907fbb313bbeaf676d50ceeafafbe5410e6a4 100644 (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"));
index 30cfa4d485a1de9b790c1df33d127dd4175577f6..8d21e4521890a3907e6cb63b18e2263e9537fea7 100644 (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
index bf4ac19104abee9d1409bad543a2d19cf239c930..a70737327eb49888635d6fe07dc5a484db532b1e 100644 (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;
index e0314996c90f8da533f58cf9b36a81e7ef3aee89..06507fdbd6767a0744ebe63a6993dbc1ded5bbbd 100644 (file)
         <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>
index 3a1cec224dcbdd2f06027adce536b82b9babe384..83f1b8eeb3e6f54849cb57652a48508fcf9dc375 100644 (file)
   </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>
index f6db53e80d3e545e456dbecb7a0e7a06132a7d73..140242513457d51ffb66a1c52becfa4a4fed1132 100644 (file)
         <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>
index 742ea30a6697f54e0d2af4315dd3b836193eb359..df11d9816404c2a1ec9bea32d9f944b2bf3ef493 100644 (file)
         <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>
index f077ca15e635824308fbb0fa52e6fb381e1568c5..dd4b9eb3a58aa990c645a899ed9066e381f827d2 100644 (file)
   </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>
index fb683a82eb375340989680ba0b701d2a457a3e7e..bed878437b5dec9df205b6741e2bbb337273dec0 100644 (file)
         <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>
index d0512678e054ef38e27a88a7bf2816fff6661620..d23323e896f5a3b662e4a61538eb06af6b57ef14 100644 (file)
         <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>
index d45c3cdcdae9e7c1f9550431055884d526d1a3fb..b7ed014bcc90801ce1d7dabe7bb6ccbe73709c29 100644 (file)
   </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>
index 8a6fbe9fe140119fc90680a6f6de848ad4c8ccc3..6fb16ea73378af11612e4531bc76641148546600 100644 (file)
         <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>
index 05fbfef6e816ad7f3aec867be1470eec88df8b17..890354eb5fbff6ca5fc0ab72ccbc40811ce9031c 100644 (file)
         <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>
index 310bef66c714b1ef816c31f6775091c5602dd059..cbd2452163a5dd9e7bdb2fc7afd99def47b0a79c 100644 (file)
         <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>
index 456d13d8a037d4e9a944b7a2f4643f4bf5cffd62..ac3a707d08323f58184755bff65d70993e8dbbf4 100644 (file)
         <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>
index 440529443c93bc7985cc13961f53e9245ca591d5..797b97004057932cfbd1c2a1616e00ddcd2bd295 100644 (file)
         <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>
index 77bf8f4c52a9756d667c58c620022f2ce4c6cfe3..b47c426f1b311a7a0be83a52e56af31fdfa235a4 100644 (file)
   </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>
index 50ef4693089da6a3205cfba9b254d54cb65de1af..7716e9d381f71e81f0fd4125cbae48cbba1a764d 100644 (file)
         <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>
index 72bc8775292c0a3d7f3f712b73d139ada5d596fc..648244d37a6fc7d632b0386e3fb9f2fe991023d2 100644 (file)
         <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>
index 9354167ff773d0f4a75c0834bf1974ef7b9fe2ad..fde3f445a39548a9c8388a96f66ccb415137d188 100644 (file)
   </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>
index d8d8147bf4c10a19db60676f175b254d2fc421e9..7b8a2ab484fd02ea6074c0b749de7d90b6e6516e 100644 (file)
         <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>
index 6561a9695c43821f594a19c3c86ccae15824acba..898c191ab7d3969eccdbbbe76850c7c2cc175b22 100644 (file)
         <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>
index d57f1c78b3987364fc1c343155691f13c3c4accf..97912f811941d5451835a6db49b9ea1661ce72f9 100644 (file)
         <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>
index be3d54d87e44848119b658c7434590f361f2ef24..02c9ce1d38f5247b2209eb79dce16a54bf6520ae 100644 (file)
   </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>
index 0f5be3a16f198e32ba5d136e2f5560bcc157530a..a3c1d7be5d69c4ca2d940a2135f21a1b1a659239 100644 (file)
         <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>
index 859f973a403e7a252e492f0e55341c4cb92c42d8..2819a22ee0defef6ef9dde5985f33f4a241dc9c4 100644 (file)
         <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>
index b873149375d85cf1c3fc2b10a4868d4aca12c80f..d17068003df00a41bf0de67e48b9566e2f4ff592 100644 (file)
         <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>
index 7a793ef8f9cf655d29739091decf20d8893729dc..e65b8c21a348f57702910a3c9e8116d30c5be8a7 100644 (file)
   </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>
index e9eb19e39d1a64441b9ed08cdfe92f8056f2a39d..282a6b50da06c49088c08074099feec42e748a45 100644 (file)
         <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>
index 43a492508f645927f570b76e897b7b7e47fbd8f9..a84b0d7a7a3cb75bb2c8467deb7b55707418ef5c 100644 (file)
         <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>
index 44d6cd5c2ee64a9df384d17b15a8f48d59cf174c..15a536f21cf9abd3af3314fa3e3e0c663740fd1b 100644 (file)
         <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>
index 7730f801ece8dc7484ec651ad9b65ce46372a4f2..5a8f0eaf6961404dd7c5779cc3f0d7f796095779 100644 (file)
         <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'/>
index a06a9fdc79d9ead56aeaec4199c20acf0d9920b7..e11d68f2ee6fd9ba45a419b7df6073860e5d9a75 100644 (file)
         <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>
index 5081f5175e51220ab3c722acb3791f00d1b1eed2..f3784936fb8cd60c40af828d2a0f610bff9e2b0b 100644 (file)
         <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>
index 717b6b1b5afc31df967098eb4baab3ba5151532b..d759d00c61c465c87afa760f30f4da57c7bbe083 100644 (file)
   </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>
index 1094ff4685497ffd24252285dd52226a6690873b..3578e27c11fd4ca625b84db0a8bd48b72d28c312 100644 (file)
         <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>
index d76e5a9a18885ff547829a296e5d44c8b4ef806f..8083dd2aebcc6ea1fc97aa671ac4e05c5c1f2b6e 100644 (file)
         <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>
index b90d300c42b79245065d373a1776c3f3ccf4cd65..ec001884b745e8f97e8950113610b2813e6c6ab9 100644 (file)
   </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>
index 814b2cf3f5e561ea246347ac54e844e31f2fd02e..2ad2936d590c2e0e325f0220e76e054761d0c19d 100644 (file)
         <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>
index 2af62f7c071c6b89a0d14bd58a1b93bcb4da45d4..72739fd7527e71fb6acea48e75ab473ac0ab6ed0 100644 (file)
         <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>
index 9523743b18cf0f4c5106217603016d2f89dbb81d..69cbd260cf4302c4f141a012ef48dcf43c289d18 100644 (file)
         <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>
index b5d92836d5635fa45c3086570d223ab48bd1e4e1..17b28d84d116e4586e32db3d1e9aac290a3d0c13 100644 (file)
         <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'/>
index 682225719d16230c17d945408f3b0525f475b166..be1be2dcae56d4fba1d49f517992297565079181 100644 (file)
         <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>
index e376a36df07e257ee1ea03e51d1f40d488ea820f..590742b8d1d0e5975856e7833d4656bd167e15fa 100644 (file)
         <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>
index 7aa9dbdf0c3f203faacf4558c4b70e1a7a7b12a8..37aaa6f3da572ef9778df3c942948ac16bf0758a 100644 (file)
   </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>
index 10ca10ae7d49df716d2d05fba2a884152e5a340e..b762c7108f49b77a4bff49b38431bdeaeaed0cce 100644 (file)
         <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>
index 524e483834fd9dee78055ff106954d0cc20efc93..c9561c6d928d9cf4a31a09ba958d559e57ee1343 100644 (file)
         <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>
index e2339d76005c20829f5618ee3b21d1c60380943f..fd088bd2d5c03058c032b2c5c950b85fc3245f5f 100644 (file)
         <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>
index 49a8481f24186758f0e2c100be07ebf091e6d375..16f3459c48b7aac256f544aed4ac6f6f8747fc6c 100644 (file)
         <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>
index b654c741f4697d112dd65868840c5b7376b0113a..41c59755df90a4cc966a3ba8654271783e16a94b 100644 (file)
         <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>
index 8033951a6fa7453abd39f15cd93accf9b87d7a7b..9afba50265aeedba52fdcec6d512b81a38b88252 100644 (file)
   </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>
index 3a4a2fc071f19542c3831719723f49118928bd60..ab3a7474d33dc842ece699ecef1acd839d6f9993 100644 (file)
         <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>
index 8f9e620b04a170fe95d2cb9150d4ec52a0a0ebce..0ac7b1240fd7579109e00ccabbc5916d526e8a4c 100644 (file)
         <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>
index 44e93d11d5f2b269d4b3f2887115e0c42d74bd00..7fcbb8c0f265a3679cc1f94f335fa2792aeb43b8 100644 (file)
   </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>
index 1f837587f78c13809821623eff3f6ba1417a22ed..a5b063e7f80022e4b18993bc62dda23aff002af4 100644 (file)
         <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>
index 524e483834fd9dee78055ff106954d0cc20efc93..c9561c6d928d9cf4a31a09ba958d559e57ee1343 100644 (file)
         <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>
index f121524f2abc5f8c268b6e6d3e6769cfe18f1387..93e020302e1e05c5b3ca5278f8450960710a2356 100644 (file)
         <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>
index e146dfb7699e11d7a2cd8bc9faaac64ffb353897..d54f88fc10f925fcfd68b536f095364b8406e9f5 100644 (file)
         <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'/>
index 331117c39c837c9ecc31586cf3344fab603894d9..35dca37b28120901bea4860add21ed7e763ae234 100644 (file)
         <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>
index 819c5dde97462f3f817fa4fb6984e4cd8c3219f3..ae0d4a6264cdb9209747f3df6c3d1961efbb71eb 100644 (file)
         <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>
index d4b9e48275696ec787788e87c36160d4a985a024..bd2c51f34b47a44c8a5d46d7032230b6377391a8 100644 (file)
   </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>
index 1661a489348087509f390b7f14a2e714877699de..e104a6b2d8ad57c5a060e39e577f15df553e38bf 100644 (file)
         <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>
index 2fe1888535c74a0f9a9bf0c82d3f02be2ea8d9b6..579b88c17fbd56d1a2901bb101d4825a31bdd51c 100644 (file)
   <flag name='fsdev.createmode'/>
   <flag name='dc390'/>
   <flag name='am53c974'/>
+  <flag name='cpu-max'/>
   <version>2010000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100287</microcodeVersion>
index 56024cfa5dc060d9207e0463c5be3a3364918aac..2c475d73bc548bb61e2a7971e0dea1a03535ae07 100644 (file)
   <flag name='fsdev.createmode'/>
   <flag name='dc390'/>
   <flag name='am53c974'/>
+  <flag name='cpu-max'/>
   <version>2011000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100288</microcodeVersion>
index 3ff1bf3ff887a1aa0a925835e3c11df94d034eed..d4dad8d8b2a769aa1f0ded710b28acf3c77a49fd 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>2012000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700289</microcodeVersion>
index 9311bf66db13d857c776c98f05e76cda438bb0ae..f4413540548d53da97f4cca197bc61753fb7facb 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900289</microcodeVersion>
index df0ce08da672c384e0135d5d94839c69969e86f6..d54e305e2ededd80aaf011cb0870c29a57c37ea0 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>2011090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100289</microcodeVersion>
index d984ad30669da3e62b5678629945c78489ea274a..37406cb4a9f96f67a84e7bf17c5044d055b1cb80 100644 (file)
   <flag name='migration-param.downtime'/>
   <flag name='dc390'/>
   <flag name='am53c974'/>
+  <flag name='cpu-max'/>
   <version>2009000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100247</microcodeVersion>
index dc0e8d637eda83094aa38858cf7ad09f9cf8dc4e..28cc662bfb307d05639024625aeefdad10a7346d 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>2012050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900239</microcodeVersion>
index 2ea912eaad26c7a384d0d8718f54249c6eb3809a..09bdbf7fc7829530515e16aedb70ee3dc25668f2 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>3000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100239</microcodeVersion>
index b05f16983cc22f3b7871159169a268aedecf4097..11d8d668de417c3b656413424d6bf44a37cd7a52 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>3000091</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900240</microcodeVersion>
index 8a892a5da315cc7c7e4548d9272a8b777b71d7e7..7c7216826b5d2bd4b247d8eca707b6b94a4c09a0 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>3000092</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100240</microcodeVersion>
index c28ada94fb55345f8f922fa955c33b37bb057f89..c44d5c6ddff92d4b35e18ad352694818a1a77376 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700240</microcodeVersion>
index a15edd87de1f5ec63e31e6d48757cd85a46ded1e..7094752b29a1408b8e641f4cb366b1cf67d4a05d 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900240</microcodeVersion>
index 4a10deea01b85fcdb899c819b92452f86df13524..8cc3a51eeb7dbcbfb4bdf21621d34386ca7186bf 100644 (file)
   <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>
index c580d2937475a91b293bf710ab8bb7548e3d3707..23a150348d0e3d103e33e707a0d07a97e9596ecb 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>4000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>43100240</microcodeVersion>
index 26eb3786e8d91e1cc713fcd7d6371675eb7300d3..792ea9e9e98747daada9519b08fb9d3ddb1d107d 100644 (file)
   <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>
index 4c149e79bb7e66b9cc2defcaacaad39ab3475ccb..20549834eb4dd38ccc10061061293f7a220d98be 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>4001050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700242</microcodeVersion>
index a0019f2a2036046f0462d3c660d0d7959cd72e6e..58c73f0a98363f8b36934f0c36f4b2a514a32c48 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>4001050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900242</microcodeVersion>
index 41db85be6bf2fa50ff634835ac1c6466cf3d050a..9bfdb2ce6306c67778df1bf33f1494d6c72d2ac0 100644 (file)
   <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>
index 976eaf347b02c743f59fe9e0d1633660cad9a0e9..10dc5d562edec385e7506ec50d80623888aac0b7 100644 (file)
   <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>
index b9963bbd7e698781ab28125d3547c73a8c7e19f2..3e8c87ece32dbc7875d3e3198ad907e2fd84a287 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700241</microcodeVersion>
index 46edacd44bf5bcfe63743625aeb37dd27cbf3431..49479c215fa05ebdcad019dab697c78381b86a8e 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>5000000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900241</microcodeVersion>
index f5bcc9ed837918886a334df8ea64c1747f0198ce..99155d9097270448c07639becbaff1fbb9fe7dda 100644 (file)
   <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>
index f7d0be69cb4ba5e5e81160be901b3bdf0699f750..9e1fa172dfc9f038dd9e6d4d2b0d8b146b3a4db2 100644 (file)
   <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>
index 6b40141f15b61a2b27e08455ddd81ec993368141..1f015c2da1a5b3d8c9cc219c2ed14d8201c4f9d9 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>61700243</microcodeVersion>
index 298139cdd7003864b036097085e42d22e5e19c34..bc94e50e596874be047195ca0c33308b76735710 100644 (file)
   <flag name='dc390'/>
   <flag name='am53c974'/>
   <flag name='vhost-user-blk'/>
+  <flag name='cpu-max'/>
   <version>5002000</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>42900243</microcodeVersion>
index b59404230c84a4a4dae067da894869f3017dfb45..8ca989facb4bd815e03921c1bf7d0785016afa8e 100644 (file)
   <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>
index 52a755ffc828f9d120bc9ebfa8081c4f0fbfacf2..c85362e1dbd790e2713d3f84d073b22c9118c0e0 100644 (file)
   <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>
index fcc416206c4c955d5f87cc8cf994f06d23902cdb..c23b05ac7012daf42c4c74c459a874436f9e865e 100644 (file)
   <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>
index 2d64cda5e5dcc7c9941b2bd83ed3fddfabe79e84..6581f143d66950067d77cf1042fafd71b6072280 100644 (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