]> xenbits.xensource.com Git - people/aperard/libvirt.git/commitdiff
conf: Allow specifying CPU clusters
authorAndrea Bolognani <abologna@redhat.com>
Fri, 5 Jan 2024 17:20:14 +0000 (18:20 +0100)
committerAndrea Bolognani <abologna@redhat.com>
Mon, 15 Jan 2024 13:56:35 +0000 (14:56 +0100)
The default number of CPU clusters is 1, and values other than
that one are currently rejected by all hypervisor drivers.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
65 files changed:
src/bhyve/bhyve_command.c
src/conf/cpu_conf.c
src/conf/cpu_conf.h
src/conf/domain_conf.c
src/conf/schemas/cputypes.rng
src/cpu/cpu.c
src/libxl/libxl_capabilities.c
src/qemu/qemu_command.c
src/vmx/vmx.c
tests/cputestdata/x86_64-host+guest,model486-result.xml
tests/cputestdata/x86_64-host+guest,models-result.xml
tests/cputestdata/x86_64-host+guest-result.xml
tests/cputestdata/x86_64-host+guest.xml
tests/cputestdata/x86_64-host+host-model-nofallback.xml
tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell,haswell-result.xml
tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell-noTSX,haswell-result.xml
tests/cputestdata/x86_64-host-Haswell-noTSX+Haswell-noTSX-result.xml
tests/cputestdata/x86_64-host-worse+guest-result.xml
tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-conf.xml
tests/qemuhotplugtestcpus/ppc64-modern-bulk-result-live.xml
tests/qemuhotplugtestcpus/ppc64-modern-individual-result-conf.xml
tests/qemuhotplugtestcpus/ppc64-modern-individual-result-live.xml
tests/qemuhotplugtestcpus/x86-modern-bulk-result-conf.xml
tests/qemuhotplugtestcpus/x86-modern-bulk-result-live.xml
tests/qemuhotplugtestcpus/x86-modern-individual-add-result-conf.xml
tests/qemuhotplugtestcpus/x86-modern-individual-add-result-live.xml
tests/qemuhotplugtestdomains/qemuhotplug-graphics-spice-timeout+graphics-spice-timeout-password.xml
tests/qemuhotplugtestdomains/qemuhotplug-graphics-spice-timeout.xml
tests/qemuxml2argvdata/fd-memory-no-numa-topology.xml
tests/qemuxml2argvdata/fd-memory-numa-topology.xml
tests/qemuxml2argvdata/fd-memory-numa-topology2.xml
tests/qemuxml2argvdata/fd-memory-numa-topology3.xml
tests/qemuxml2argvdata/hugepages-nvdimm.xml
tests/qemuxml2argvdata/memfd-memory-default-hugepage.xml
tests/qemuxml2argvdata/memfd-memory-numa.xml
tests/qemuxml2argvdata/memory-hotplug-nvdimm-access.xml
tests/qemuxml2argvdata/memory-hotplug-nvdimm-align.xml
tests/qemuxml2argvdata/memory-hotplug-nvdimm-label.xml
tests/qemuxml2argvdata/memory-hotplug-nvdimm-pmem.xml
tests/qemuxml2argvdata/memory-hotplug-nvdimm-readonly.xml
tests/qemuxml2argvdata/memory-hotplug-nvdimm.xml
tests/qemuxml2argvdata/memory-hotplug-virtio-mem.xml
tests/qemuxml2argvdata/memory-hotplug-virtio-pmem.xml
tests/qemuxml2xmloutdata/cpu-numa-disjoint.x86_64-latest.xml
tests/qemuxml2xmloutdata/cpu-numa-disordered.x86_64-latest.xml
tests/qemuxml2xmloutdata/cpu-numa-memshared.x86_64-latest.xml
tests/qemuxml2xmloutdata/cpu-numa-no-memory-element.x86_64-latest.xml
tests/qemuxml2xmloutdata/cpu-numa1.x86_64-latest.xml
tests/qemuxml2xmloutdata/cpu-numa2.x86_64-latest.xml
tests/qemuxml2xmloutdata/memory-hotplug-dimm-addr.x86_64-latest.xml
tests/qemuxml2xmloutdata/memory-hotplug-dimm.x86_64-latest.xml
tests/qemuxml2xmloutdata/memory-hotplug-multiple.x86_64-latest.xml
tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64-abi-update.ppc64-latest.xml
tests/qemuxml2xmloutdata/memory-hotplug-nvdimm-ppc64.ppc64-latest.xml
tests/qemuxml2xmloutdata/memory-hotplug.x86_64-latest.xml
tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-cpuset.x86_64-latest.xml
tests/qemuxml2xmloutdata/numad-auto-memory-vcpu-no-cpuset-and-placement.x86_64-latest.xml
tests/qemuxml2xmloutdata/numad-auto-vcpu-no-numatune.x86_64-latest.xml
tests/qemuxml2xmloutdata/numad-static-vcpu-no-numatune.x86_64-latest.xml
tests/qemuxml2xmloutdata/pci-expander-bus.x86_64-latest.xml
tests/qemuxml2xmloutdata/pcie-expander-bus.x86_64-latest.xml
tests/qemuxml2xmloutdata/pseries-phb-numa-node.ppc64-latest.xml
tests/vmx2xmldata/esx-in-the-wild-10.xml
tests/vmx2xmldata/esx-in-the-wild-8.xml
tests/vmx2xmldata/esx-in-the-wild-9.xml

index 5b388c7a8f96c1bb5a4c357c59bb6ba4019175fc..d05b01ae5d13bd866b9e41334e2fdd483606a0d1 100644 (file)
@@ -672,6 +672,11 @@ virBhyveProcessBuildBhyveCmd(struct _bhyveConn *driver, virDomainDef *def,
                            _("Only 1 die per socket is supported"));
             return NULL;
         }
+        if (def->cpu->clusters != 1) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("Only 1 cluster per die is supported"));
+            return NULL;
+        }
         if (nvcpus != def->cpu->sockets * def->cpu->cores * def->cpu->threads) {
             virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                            _("Invalid CPU topology: total number of vCPUs must equal the product of sockets, cores, and threads"));
index 7abe489733d9c3e873f0a88e9ed552251e27cc17..6e6e1b9a89768b01ea5ecae2b06807ccff62e5d7 100644 (file)
@@ -241,6 +241,7 @@ virCPUDefCopyWithoutModel(const virCPUDef *cpu)
     copy->fallback = cpu->fallback;
     copy->sockets = cpu->sockets;
     copy->dies = cpu->dies;
+    copy->clusters = cpu->clusters;
     copy->cores = cpu->cores;
     copy->threads = cpu->threads;
     copy->arch = cpu->arch;
@@ -572,6 +573,12 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt,
             return -1;
         }
 
+        if (virXMLPropUIntDefault(topology, "clusters", 10,
+                                  VIR_XML_PROP_NONZERO,
+                                  &def->clusters, 1) < 0) {
+            return -1;
+        }
+
         if (virXMLPropUInt(topology, "cores", 10,
                            VIR_XML_PROP_REQUIRED | VIR_XML_PROP_NONZERO,
                            &def->cores) < 0) {
@@ -827,10 +834,11 @@ virCPUDefFormatBuf(virBuffer *buf,
         virBufferAddLit(buf, "/>\n");
     }
 
-    if (def->sockets && def->dies && def->cores && def->threads) {
+    if (def->sockets && def->dies && def->clusters && def->cores && def->threads) {
         virBufferAddLit(buf, "<topology");
         virBufferAsprintf(buf, " sockets='%u'", def->sockets);
         virBufferAsprintf(buf, " dies='%u'", def->dies);
+        virBufferAsprintf(buf, " clusters='%u'", def->clusters);
         virBufferAsprintf(buf, " cores='%u'", def->cores);
         virBufferAsprintf(buf, " threads='%u'", def->threads);
         virBufferAddLit(buf, "/>\n");
@@ -1106,6 +1114,12 @@ virCPUDefIsEqual(virCPUDef *src,
         return false;
     }
 
+    if (src->clusters != dst->clusters) {
+        MISMATCH(_("Target CPU clusters %1$d does not match source %2$d"),
+                 dst->clusters, src->clusters);
+        return false;
+    }
+
     if (src->cores != dst->cores) {
         MISMATCH(_("Target CPU cores %1$d does not match source %2$d"),
                  dst->cores, src->cores);
index 3e4c53675c8610bcc292c27e3b41b0cf78241426..2694022fed1e3ab15e5f83572b5a466f74c3711c 100644 (file)
@@ -148,6 +148,7 @@ struct _virCPUDef {
     unsigned int microcodeVersion;
     unsigned int sockets;
     unsigned int dies;
+    unsigned int clusters;
     unsigned int cores;
     unsigned int threads;
     unsigned int sigFamily;
index 5d55d2acdace5cd8a49b4e44ff5f8e2dab059bd5..6211d2a51b095125e6aa86559db2639afe6d843f 100644 (file)
@@ -2316,6 +2316,7 @@ virDomainDefGetVcpusTopology(const virDomainDef *def,
 
     /* multiplication of 32bit numbers fits into a 64bit variable */
     if ((tmp *= def->cpu->dies) > UINT_MAX ||
+        (tmp *= def->cpu->clusters) > UINT_MAX ||
         (tmp *= def->cpu->cores) > UINT_MAX ||
         (tmp *= def->cpu->threads) > UINT_MAX) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
index db1aa571582079a2680dc543e70f218fcda43b36..3a8910e09f2df924148730ead7de8967477718ab 100644 (file)
           <ref name="positiveInteger"/>
         </attribute>
       </optional>
+      <optional>
+        <attribute name="clusters">
+          <ref name="positiveInteger"/>
+        </attribute>
+      </optional>
       <attribute name="cores">
         <ref name="positiveInteger"/>
       </attribute>
index bc43aa4e939f4b40af8cdab4d6d1189d55af0718..4f048d0dad391e1822b3c67595ac5d0517a99de5 100644 (file)
@@ -435,6 +435,7 @@ virCPUGetHost(virArch arch,
     if (nodeInfo) {
         cpu->sockets = nodeInfo->sockets;
         cpu->dies = 1;
+        cpu->clusters = 1;
         cpu->cores = nodeInfo->cores;
         cpu->threads = nodeInfo->threads;
     }
index dfb602ca2fc754359fe28c28a6c06589482b9c25..522256777db1fb2d0fac8dc2937b78b8da84553e 100644 (file)
@@ -152,6 +152,7 @@ libxlCapsInitCPU(virCaps *caps, libxl_physinfo *phy_info)
     cpu->cores = phy_info->cores_per_socket;
     cpu->threads = phy_info->threads_per_core;
     cpu->dies = 1;
+    cpu->clusters = 1;
     cpu->sockets = phy_info->nr_cpus / (cpu->cores * cpu->threads);
 
     if (!(data = libxlCapsNodeData(cpu, phy_info->hw_cap)) ||
index 653817173b48dd4bef7af5e4ac145276998bd0bc..71daa85e55f0a0144ba187e8b1a1b5409db5dd76 100644 (file)
@@ -7226,6 +7226,11 @@ qemuBuildSmpCommandLine(virCommand *cmd,
                            _("Only 1 die per socket is supported"));
             return -1;
         }
+        if (def->cpu->clusters != 1) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("Only 1 cluster per die is supported"));
+            return -1;
+        }
         virBufferAsprintf(&buf, ",sockets=%u", def->cpu->sockets);
         if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SMP_DIES))
             virBufferAsprintf(&buf, ",dies=%u", def->cpu->dies);
index 26b89776e1a8756aa81f5531e8225054ea518191..4ac2320251e4d52f45d10f1709c99df6f06fea3a 100644 (file)
@@ -1583,6 +1583,7 @@ virVMXParseConfig(virVMXContext *ctx,
             goto cleanup;
         }
         cpu->dies = 1;
+        cpu->clusters = 1;
         cpu->cores = coresPerSocket;
         cpu->threads = 1;
 
@@ -3377,6 +3378,12 @@ virVMXFormatConfig(virVMXContext *ctx, virDomainXMLOption *xmlopt, virDomainDef
             goto cleanup;
         }
 
+        if (def->cpu->clusters != 1) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                           _("Only 1 cluster per die is supported"));
+            goto cleanup;
+        }
+
         calculated_vcpus = def->cpu->sockets * def->cpu->cores;
         if (calculated_vcpus != maxvcpus) {
             virReportError(VIR_ERR_INTERNAL_ERROR,
index ea8e2d3a48cd4de214afad6f435b47f10451a084..b533f22b88005d8014e6291682057eb23300d5a5 100644 (file)
@@ -1,6 +1,6 @@
 <cpu mode='custom' match='exact'>
   <model fallback='allow'>486</model>
-  <topology sockets='2' dies='1' cores='4' threads='1'/>
+  <topology sockets='2' dies='1' clusters='1' cores='4' threads='1'/>
   <feature policy='require' name='de'/>
   <feature policy='require' name='tsc'/>
   <feature policy='require' name='msr'/>
index 42664a48b4db61751fdb485e9a43b03a8bc48eb5..e975d9bc18125661e95492d019882578e4ef354c 100644 (file)
@@ -1,6 +1,6 @@
 <cpu mode='custom' match='exact'>
   <model fallback='allow'>qemu64</model>
-  <topology sockets='2' dies='1' cores='4' threads='1'/>
+  <topology sockets='2' dies='1' clusters='1' cores='4' threads='1'/>
   <feature policy='force' name='pbe'/>
   <feature policy='force' name='monitor'/>
   <feature policy='require' name='ssse3'/>
index 28e3152cbfa04792ae5c35c04f227b6c97d049c6..cf41b3f872188f75cce3e8246432062c837410f8 100644 (file)
@@ -1,6 +1,6 @@
 <cpu mode='custom' match='exact'>
   <model fallback='allow'>Penryn</model>
-  <topology sockets='2' dies='1' cores='4' threads='1'/>
+  <topology sockets='2' dies='1' clusters='1' cores='4' threads='1'/>
   <feature policy='require' name='dca'/>
   <feature policy='require' name='xtpr'/>
   <feature policy='disable' name='sse4.2'/>
index 28e3152cbfa04792ae5c35c04f227b6c97d049c6..cf41b3f872188f75cce3e8246432062c837410f8 100644 (file)
@@ -1,6 +1,6 @@
 <cpu mode='custom' match='exact'>
   <model fallback='allow'>Penryn</model>
-  <topology sockets='2' dies='1' cores='4' threads='1'/>
+  <topology sockets='2' dies='1' clusters='1' cores='4' threads='1'/>
   <feature policy='require' name='dca'/>
   <feature policy='require' name='xtpr'/>
   <feature policy='disable' name='sse4.2'/>
index 16d6e1daf2dac3fa36fdc37da38d588f9f7c86d7..881eea7bd0be1fb66b2875b59975f1731a298d15 100644 (file)
@@ -1,7 +1,7 @@
 <cpu mode='custom' match='exact'>
   <model fallback='forbid'>Penryn</model>
   <vendor>Intel</vendor>
-  <topology sockets='1' dies='1' cores='2' threads='1'/>
+  <topology sockets='1' dies='1' clusters='1' cores='2' threads='1'/>
   <feature policy='require' name='dca'/>
   <feature policy='require' name='xtpr'/>
   <feature policy='require' name='tm2'/>
index 8eda6684a01029482e43a6a26461e5bab3f399de..67994c62cc5a69cbdde67e4a55bd8d36e0fece2a 100644 (file)
@@ -1,6 +1,6 @@
 <cpu mode='custom' match='exact'>
   <model fallback='allow'>Haswell</model>
-  <topology sockets='1' dies='1' cores='2' threads='2'/>
+  <topology sockets='1' dies='1' clusters='1' cores='2' threads='2'/>
   <feature policy='disable' name='rtm'/>
   <feature policy='disable' name='hle'/>
 </cpu>
index cb02449d609dae74df3139cd297220c84806187e..4804c0b818c2797ace8709389df52a821cda1ce4 100644 (file)
@@ -1,6 +1,6 @@
 <cpu mode='custom' match='exact'>
   <model fallback='allow'>Haswell</model>
-  <topology sockets='1' dies='1' cores='2' threads='2'/>
+  <topology sockets='1' dies='1' clusters='1' cores='2' threads='2'/>
   <feature policy='disable' name='hle'/>
   <feature policy='disable' name='rtm'/>
 </cpu>
index 7ee926aba8dc5c1a71a560866a8d4ddd1edf70ae..c21b331248010b757ac9d9dbea56394f3c4c5b88 100644 (file)
@@ -1,4 +1,4 @@
 <cpu mode='custom' match='exact'>
   <model fallback='allow'>Haswell-noTSX</model>
-  <topology sockets='1' dies='1' cores='2' threads='2'/>
+  <topology sockets='1' dies='1' clusters='1' cores='2' threads='2'/>
 </cpu>
index 9d54c66a8fbb957580a3d755e5f7a0a205c33079..712c3ad341dc6253055d98593576d86fa416266b 100644 (file)
@@ -1,6 +1,6 @@
 <cpu mode='custom' match='exact'>
   <model fallback='allow'>Penryn</model>
-  <topology sockets='2' dies='1' cores='4' threads='1'/>
+  <topology sockets='2' dies='1' clusters='1' cores='4' threads='1'/>
   <feature policy='disable' name='dca'/>
   <feature policy='disable' name='xtpr'/>
   <feature policy='disable' name='sse4.2'/>
index ad11b2f8a613b6b9301bc3bfc310d248e357aa1c..1a0d28257ee17ab0ab90a4837238c436c65206fb 100644 (file)
@@ -44,7 +44,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>POWER9</model>
-    <topology sockets='1' dies='1' cores='4' threads='8'/>
+    <topology sockets='1' dies='1' clusters='1' cores='4' threads='8'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 2a3b4a495fd856d2ba618f24646228fb186281c0..b127883b362344db7b88cb87daf8d3de9e0191dd 100644 (file)
@@ -44,7 +44,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>POWER9</model>
-    <topology sockets='1' dies='1' cores='4' threads='8'/>
+    <topology sockets='1' dies='1' clusters='1' cores='4' threads='8'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 34aec9b96557243449f930765a02b24735905a2e..29f1a5ac45dcfbd2307f423f9338275e974c6402 100644 (file)
@@ -44,7 +44,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>POWER9</model>
-    <topology sockets='1' dies='1' cores='4' threads='8'/>
+    <topology sockets='1' dies='1' clusters='1' cores='4' threads='8'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 5ce2cfd0b0df4774dd49fb8d87f8723f387f251e..76a85ac9f05ad60e5cf2c398b7aaa3edd73b57ef 100644 (file)
@@ -44,7 +44,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>POWER9</model>
-    <topology sockets='1' dies='1' cores='4' threads='8'/>
+    <topology sockets='1' dies='1' clusters='1' cores='4' threads='8'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 8d52ffedb4b109fcfe6aee7ea4d3f35cee2a0733..bec46987ff853b36e142772ab639f6281c2c71be 100644 (file)
@@ -20,7 +20,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='4' dies='1' cores='2' threads='1'/>
+    <topology sockets='4' dies='1' clusters='1' cores='2' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index f416397e33cd4d9b079dbeedd67e1bfd119db224..be9769c686cd2bc0c86d91de068545abcc04d902 100644 (file)
@@ -20,7 +20,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='4' dies='1' cores='2' threads='1'/>
+    <topology sockets='4' dies='1' clusters='1' cores='2' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 0bd2af8e43c2e6df2018036c6175b71eb990d507..539f607818cd6a3ba1c95a3f63961f60883c97a9 100644 (file)
@@ -20,7 +20,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='4' dies='1' cores='2' threads='1'/>
+    <topology sockets='4' dies='1' clusters='1' cores='2' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index b31e6ebe5521c066bbc2df78b224fa0e889e525c..acbdd3cfd5dd4c59c5acd4edc571fd97428cd23a 100644 (file)
@@ -20,7 +20,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='4' dies='1' cores='2' threads='1'/>
+    <topology sockets='4' dies='1' clusters='1' cores='2' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 03964ad01ce26714983645735676acd8f857180f..ee53339338b961dbed5367c63d2ea41ea767149a 100644 (file)
@@ -18,7 +18,7 @@
   <cpu mode='custom' match='exact' check='partial'>
     <model fallback='allow'>core2duo</model>
     <vendor>Intel</vendor>
-    <topology sockets='1' dies='1' cores='2' threads='1'/>
+    <topology sockets='1' dies='1' clusters='1' cores='2' threads='1'/>
     <feature policy='require' name='lahf_lm'/>
     <feature policy='require' name='xtpr'/>
     <feature policy='require' name='cx16'/>
index e6b0cc833aabfffe9c7949e8e6f3a558ffb65062..eb9b902fc5f237236effc5d820add54847da8c54 100644 (file)
@@ -18,7 +18,7 @@
   <cpu mode='custom' match='exact' check='partial'>
     <model fallback='allow'>core2duo</model>
     <vendor>Intel</vendor>
-    <topology sockets='1' dies='1' cores='2' threads='1'/>
+    <topology sockets='1' dies='1' clusters='1' cores='2' threads='1'/>
     <feature policy='require' name='lahf_lm'/>
     <feature policy='require' name='xtpr'/>
     <feature policy='require' name='cx16'/>
index 2090bb82885a30ad08e7f9f7553875c04a8141de..92f418fb8802ae035846371fd951257aa65d5ebd 100644 (file)
@@ -15,7 +15,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='8' dies='1' cores='1' threads='1'/>
+    <topology sockets='8' dies='1' clusters='1' cores='1' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 2f94690656ea7b72354768d3ea42c63f983be953..543509d832ca497de6c9ebf09d65a11080a1aed6 100644 (file)
@@ -15,7 +15,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='1' dies='1' cores='8' threads='1'/>
+    <topology sockets='1' dies='1' clusters='1' cores='8' threads='1'/>
     <numa>
       <cell id='0' cpus='0-7' memory='14680064' unit='KiB'/>
     </numa>
index 3a4e9b478ef3eb8cd3a98570fe1dd7a185aadc28..d3b98da3c6ddc118342bd958d9c37a62f222ce24 100644 (file)
@@ -15,7 +15,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='1' dies='1' cores='20' threads='1'/>
+    <topology sockets='1' dies='1' clusters='1' cores='20' threads='1'/>
     <numa>
       <cell id='0' cpus='0-7,16-19' memory='14680064' unit='KiB'/>
       <cell id='1' cpus='8-15' memory='14680064' unit='KiB' memAccess='shared'/>
index 0f7f74283b7b63f7fcfe1a2e20019cdd6effe9d1..459d1b9d1d89cc0b3f0432d149f37a63374ec9be 100644 (file)
@@ -15,7 +15,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='1' dies='1' cores='32' threads='1'/>
+    <topology sockets='1' dies='1' clusters='1' cores='32' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1,6-31' memory='14680064' unit='KiB'/>
       <cell id='1' cpus='2-3' memory='14680064' unit='KiB' memAccess='shared'/>
index 1a1500895bcec8610b5bf036132253def54010ef..b786b0d3ddb9ae5a27f3cbb6ccfe98a44402bbc4 100644 (file)
@@ -17,7 +17,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
     </numa>
index 238d4c6b529795a133ee1a939bd4fa163069e2f9..a70bd53134932d14557d4c5fad222fbf93acf030 100644 (file)
@@ -19,7 +19,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='1' dies='1' cores='8' threads='1'/>
+    <topology sockets='1' dies='1' clusters='1' cores='8' threads='1'/>
     <numa>
       <cell id='0' cpus='0-7' memory='14680064' unit='KiB'/>
     </numa>
index 1ac87e3aef4c84d8a2038365dae5ec64ac18dabb..0c5d7ba4ef6a005783a57a77a22e68fde0206f18 100644 (file)
@@ -22,7 +22,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='1' dies='1' cores='8' threads='1'/>
+    <topology sockets='1' dies='1' clusters='1' cores='8' threads='1'/>
     <numa>
       <cell id='0' cpus='0-7' memory='14680064' unit='KiB'/>
     </numa>
index bee0346acad2497e6c868d467c03452761990240..84baf82bf592bc9b2ca1d3a85bdd79fa8de39660 100644 (file)
@@ -15,7 +15,7 @@
   </idmap>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
     </numa>
index decf87db63f7cdf1a87a7ffbf48b4545bdd154e0..664418e80507320551593c72124a1d91328e2424 100644 (file)
@@ -15,7 +15,7 @@
   </idmap>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
     </numa>
index 8a0dab390840365bc1da41f855fe6435a9e3599a..f998f7f276d36ae86b1ef549b407dc6695078f52 100644 (file)
@@ -15,7 +15,7 @@
   </idmap>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
     </numa>
index a712adfe1e2b16809d3ed705695df1b407c58aff..d66481fd35fefbc33e19cee887bd6b2750bc034c 100644 (file)
@@ -15,7 +15,7 @@
   </idmap>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
     </numa>
index 57629ccb8cf449819056c2a1d4abfcc6795d27b8..56d6b7b71231c17e5cf6069ed6a2fe37ede4276d 100644 (file)
@@ -15,7 +15,7 @@
   </idmap>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
     </numa>
index 865ddcf0ea2852adea8b0d142bd5c4753fe3a1ee..ff6e3b7b0ffb9632718c071c863a7ba93dce066f 100644 (file)
@@ -15,7 +15,7 @@
   </idmap>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
     </numa>
index c578209d8a1cf1d5f1db19b9b5c459eacf6be627..52fa6b14e9173edb1c14b36e6d392a8a05533cd4 100644 (file)
@@ -11,7 +11,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='2095104' unit='KiB'/>
     </numa>
index a8b22dd3c5eb53aa6f157f3339c17d042eaf2a8c..2786a739add78dcc37fcd6d76f86c0066c77c45f 100644 (file)
@@ -11,7 +11,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='2095104' unit='KiB'/>
     </numa>
index fa2ec31463fd77000e8d4a50cc86f42d119e4f3c..4f33094949377295cb7986d92497ad6f0a9579c8 100644 (file)
@@ -10,7 +10,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='4' threads='2'/>
+    <topology sockets='2' dies='1' clusters='1' cores='4' threads='2'/>
     <numa>
       <cell id='0' cpus='0-3,8-11' memory='109550' unit='KiB'/>
       <cell id='1' cpus='4-7,12-15' memory='109550' unit='KiB'/>
index 1b4d0bfa6793c35e24abb8cbf31224135b191a69..75dcb8c9e289a9df52ec1bb203cc13ee72f3ac0c 100644 (file)
@@ -10,7 +10,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='4' threads='2'/>
+    <topology sockets='2' dies='1' clusters='1' cores='4' threads='2'/>
     <numa>
       <cell id='0' cpus='0-5' memory='109550' unit='KiB'/>
       <cell id='1' cpus='11-15' memory='109550' unit='KiB'/>
index 47ed9efd69b8a4fddcc5c0059309f13f5a5ee15e..c45e29592133c240b6b99bac8f46fe90abacb089 100644 (file)
@@ -10,7 +10,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='4' threads='2'/>
+    <topology sockets='2' dies='1' clusters='1' cores='4' threads='2'/>
     <numa>
       <cell id='0' cpus='0-7' memory='109550' unit='KiB' memAccess='shared'/>
       <cell id='1' cpus='8-15' memory='109550' unit='KiB' memAccess='private'/>
index 57bbacdff09d4a46a3334d6ac10f6296d75f1f2d..663d137ff5f2d319fc9cfd5f8cffecad6f0f6a85 100644 (file)
@@ -10,7 +10,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='4' threads='2'/>
+    <topology sockets='2' dies='1' clusters='1' cores='4' threads='2'/>
     <numa>
       <cell id='0' cpus='0-7' memory='109550' unit='KiB'/>
       <cell id='1' cpus='8-15' memory='109550' unit='KiB'/>
index 57bbacdff09d4a46a3334d6ac10f6296d75f1f2d..663d137ff5f2d319fc9cfd5f8cffecad6f0f6a85 100644 (file)
@@ -10,7 +10,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='4' threads='2'/>
+    <topology sockets='2' dies='1' clusters='1' cores='4' threads='2'/>
     <numa>
       <cell id='0' cpus='0-7' memory='109550' unit='KiB'/>
       <cell id='1' cpus='8-15' memory='109550' unit='KiB'/>
index 57bbacdff09d4a46a3334d6ac10f6296d75f1f2d..663d137ff5f2d319fc9cfd5f8cffecad6f0f6a85 100644 (file)
@@ -10,7 +10,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='4' threads='2'/>
+    <topology sockets='2' dies='1' clusters='1' cores='4' threads='2'/>
     <numa>
       <cell id='0' cpus='0-7' memory='109550' unit='KiB'/>
       <cell id='1' cpus='8-15' memory='109550' unit='KiB'/>
index 0a32d5491abde6d189e9d2c96d3be6e90c56531d..38b41e67192e9921575092583d9657deaffcdf4a 100644 (file)
@@ -11,7 +11,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
     </numa>
index 7c1b7b2c5d35ec1bf5230f7fe309c63513ab428a..7f0dc85c0e74954284f68be1168d4cf99adb8da4 100644 (file)
@@ -15,7 +15,7 @@
   </idmap>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
     </numa>
index 42b0f7b8801e5b6838ffa7f0d68af743791d70bd..b3306fb56977d27746da510223b111c105873561 100644 (file)
@@ -11,7 +11,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='2095104' unit='KiB'/>
     </numa>
index ae157c4849055d5996db43fdfad0f55d2bffa4b8..4cc0c674df262afa7a034e910e395beab50f8367 100644 (file)
@@ -11,7 +11,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>POWER9</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
     </numa>
index 3c1cbc731d8b538b40ca0f2732b634c8f03b8235..a5c26e3c5b073580a94e13d5ee271b14f3d85a00 100644 (file)
@@ -11,7 +11,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>POWER9</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
     </numa>
index 083102e8d67f252381d312b2a19aa6f82a99414d..697819387f13216c23d1c835c32b03995af9930e 100644 (file)
@@ -11,7 +11,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
     <numa>
       <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
     </numa>
index 2d04bc23c201e9df39bfdff9bd0823b243df60eb..6068a7646421bdbfdce2e32a7f9bae04ad567737 100644 (file)
@@ -13,7 +13,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 80f7284126a5e408ffddaca2181a645b10fd9758..6c558526e9c5135a046ecb0a73eabd3a832f59a8 100644 (file)
@@ -13,7 +13,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 724209f6e301da1afc30cdf36b1d8fe79ed39d44..6e1fecb488de6d3540e9412c390ee5f5f526bfbb 100644 (file)
@@ -13,7 +13,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 2a4ee0d49685bf58c9959bc3214b0de1bbea5ca1..c42d7066f9615ef6039b745609dd5e99dfbf68ac 100644 (file)
@@ -10,7 +10,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='1' threads='1'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index b63c8c145a6ae29113bfbb7ab4c6221b3818220e..2a6c329a40e79813f40d95bb73bef37b75e76e42 100644 (file)
@@ -10,7 +10,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='4' threads='2'/>
+    <topology sockets='2' dies='1' clusters='1' cores='4' threads='2'/>
     <numa>
       <cell id='0' cpus='0-7' memory='109550' unit='KiB'/>
       <cell id='1' cpus='8-15' memory='109550' unit='KiB'/>
index a441be8ebe6ec85058bdf0694b3bf90c04bd633b..99612740b2bb6b9bbd34ae2464950476d5544c96 100644 (file)
@@ -10,7 +10,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>qemu64</model>
-    <topology sockets='2' dies='1' cores='4' threads='2'/>
+    <topology sockets='2' dies='1' clusters='1' cores='4' threads='2'/>
     <numa>
       <cell id='0' cpus='0-7' memory='109550' unit='KiB'/>
       <cell id='1' cpus='8-15' memory='109550' unit='KiB'/>
index 59015846fb3265193561b9939d3926d378da48fd..0a044f50b00a5cb4d8eca32a85798ecd5c2610c4 100644 (file)
@@ -14,7 +14,7 @@
   </os>
   <cpu mode='custom' match='exact' check='none'>
     <model fallback='forbid'>POWER9</model>
-    <topology sockets='2' dies='1' cores='1' threads='4'/>
+    <topology sockets='2' dies='1' clusters='1' cores='1' threads='4'/>
     <numa>
       <cell id='0' cpus='0-3' memory='1048576' unit='KiB'/>
       <cell id='1' cpus='4-7' memory='1048576' unit='KiB'/>
index 47ed637920a66cf235751755022d61d7a28b2b4c..78129682bd89536102aec4755fd1525350e27380 100644 (file)
@@ -12,7 +12,7 @@
     <type arch='x86_64'>hvm</type>
   </os>
   <cpu>
-    <topology sockets='1' dies='1' cores='2' threads='1'/>
+    <topology sockets='1' dies='1' clusters='1' cores='2' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 0eea610709514f0dbe847ab55599e67272d3b306..47d22ced2ad0b3e3c450f4e32072c8d10c6455cb 100644 (file)
@@ -11,7 +11,7 @@
     <type arch='x86_64'>hvm</type>
   </os>
   <cpu>
-    <topology sockets='4' dies='1' cores='2' threads='1'/>
+    <topology sockets='4' dies='1' clusters='1' cores='2' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
index 66eca400dd6eb1a1245bebf2d15f9cd83b897b25..ee6be2527fd9a00865afd7e911c99c8ab80a05f0 100644 (file)
@@ -12,7 +12,7 @@
     <type arch='x86_64'>hvm</type>
   </os>
   <cpu>
-    <topology sockets='4' dies='1' cores='4' threads='1'/>
+    <topology sockets='4' dies='1' clusters='1' cores='4' threads='1'/>
   </cpu>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>