conf: Allow specifying CPU clusters

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>
This commit is contained in:
Andrea Bolognani 2024-01-05 18:20:14 +01:00
parent 5fc56aefb6
commit ef5c397584
65 changed files with 97 additions and 57 deletions

View File

@ -672,6 +672,11 @@ virBhyveProcessBuildBhyveCmd(struct _bhyveConn *driver, virDomainDef *def,
_("Only 1 die per socket is supported")); _("Only 1 die per socket is supported"));
return NULL; 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) { if (nvcpus != def->cpu->sockets * def->cpu->cores * def->cpu->threads) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("Invalid CPU topology: total number of vCPUs must equal the product of sockets, cores, and threads")); _("Invalid CPU topology: total number of vCPUs must equal the product of sockets, cores, and threads"));

View File

@ -241,6 +241,7 @@ virCPUDefCopyWithoutModel(const virCPUDef *cpu)
copy->fallback = cpu->fallback; copy->fallback = cpu->fallback;
copy->sockets = cpu->sockets; copy->sockets = cpu->sockets;
copy->dies = cpu->dies; copy->dies = cpu->dies;
copy->clusters = cpu->clusters;
copy->cores = cpu->cores; copy->cores = cpu->cores;
copy->threads = cpu->threads; copy->threads = cpu->threads;
copy->arch = cpu->arch; copy->arch = cpu->arch;
@ -572,6 +573,12 @@ virCPUDefParseXML(xmlXPathContextPtr ctxt,
return -1; return -1;
} }
if (virXMLPropUIntDefault(topology, "clusters", 10,
VIR_XML_PROP_NONZERO,
&def->clusters, 1) < 0) {
return -1;
}
if (virXMLPropUInt(topology, "cores", 10, if (virXMLPropUInt(topology, "cores", 10,
VIR_XML_PROP_REQUIRED | VIR_XML_PROP_NONZERO, VIR_XML_PROP_REQUIRED | VIR_XML_PROP_NONZERO,
&def->cores) < 0) { &def->cores) < 0) {
@ -827,10 +834,11 @@ virCPUDefFormatBuf(virBuffer *buf,
virBufferAddLit(buf, "/>\n"); 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"); virBufferAddLit(buf, "<topology");
virBufferAsprintf(buf, " sockets='%u'", def->sockets); virBufferAsprintf(buf, " sockets='%u'", def->sockets);
virBufferAsprintf(buf, " dies='%u'", def->dies); virBufferAsprintf(buf, " dies='%u'", def->dies);
virBufferAsprintf(buf, " clusters='%u'", def->clusters);
virBufferAsprintf(buf, " cores='%u'", def->cores); virBufferAsprintf(buf, " cores='%u'", def->cores);
virBufferAsprintf(buf, " threads='%u'", def->threads); virBufferAsprintf(buf, " threads='%u'", def->threads);
virBufferAddLit(buf, "/>\n"); virBufferAddLit(buf, "/>\n");
@ -1106,6 +1114,12 @@ virCPUDefIsEqual(virCPUDef *src,
return false; 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) { if (src->cores != dst->cores) {
MISMATCH(_("Target CPU cores %1$d does not match source %2$d"), MISMATCH(_("Target CPU cores %1$d does not match source %2$d"),
dst->cores, src->cores); dst->cores, src->cores);

View File

@ -148,6 +148,7 @@ struct _virCPUDef {
unsigned int microcodeVersion; unsigned int microcodeVersion;
unsigned int sockets; unsigned int sockets;
unsigned int dies; unsigned int dies;
unsigned int clusters;
unsigned int cores; unsigned int cores;
unsigned int threads; unsigned int threads;
unsigned int sigFamily; unsigned int sigFamily;

View File

@ -2316,6 +2316,7 @@ virDomainDefGetVcpusTopology(const virDomainDef *def,
/* multiplication of 32bit numbers fits into a 64bit variable */ /* multiplication of 32bit numbers fits into a 64bit variable */
if ((tmp *= def->cpu->dies) > UINT_MAX || if ((tmp *= def->cpu->dies) > UINT_MAX ||
(tmp *= def->cpu->clusters) > UINT_MAX ||
(tmp *= def->cpu->cores) > UINT_MAX || (tmp *= def->cpu->cores) > UINT_MAX ||
(tmp *= def->cpu->threads) > UINT_MAX) { (tmp *= def->cpu->threads) > UINT_MAX) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, virReportError(VIR_ERR_CONFIG_UNSUPPORTED,

View File

@ -92,6 +92,11 @@
<ref name="positiveInteger"/> <ref name="positiveInteger"/>
</attribute> </attribute>
</optional> </optional>
<optional>
<attribute name="clusters">
<ref name="positiveInteger"/>
</attribute>
</optional>
<attribute name="cores"> <attribute name="cores">
<ref name="positiveInteger"/> <ref name="positiveInteger"/>
</attribute> </attribute>

View File

@ -435,6 +435,7 @@ virCPUGetHost(virArch arch,
if (nodeInfo) { if (nodeInfo) {
cpu->sockets = nodeInfo->sockets; cpu->sockets = nodeInfo->sockets;
cpu->dies = 1; cpu->dies = 1;
cpu->clusters = 1;
cpu->cores = nodeInfo->cores; cpu->cores = nodeInfo->cores;
cpu->threads = nodeInfo->threads; cpu->threads = nodeInfo->threads;
} }

View File

@ -152,6 +152,7 @@ libxlCapsInitCPU(virCaps *caps, libxl_physinfo *phy_info)
cpu->cores = phy_info->cores_per_socket; cpu->cores = phy_info->cores_per_socket;
cpu->threads = phy_info->threads_per_core; cpu->threads = phy_info->threads_per_core;
cpu->dies = 1; cpu->dies = 1;
cpu->clusters = 1;
cpu->sockets = phy_info->nr_cpus / (cpu->cores * cpu->threads); cpu->sockets = phy_info->nr_cpus / (cpu->cores * cpu->threads);
if (!(data = libxlCapsNodeData(cpu, phy_info->hw_cap)) || if (!(data = libxlCapsNodeData(cpu, phy_info->hw_cap)) ||

View File

@ -7226,6 +7226,11 @@ qemuBuildSmpCommandLine(virCommand *cmd,
_("Only 1 die per socket is supported")); _("Only 1 die per socket is supported"));
return -1; 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); virBufferAsprintf(&buf, ",sockets=%u", def->cpu->sockets);
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SMP_DIES)) if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_SMP_DIES))
virBufferAsprintf(&buf, ",dies=%u", def->cpu->dies); virBufferAsprintf(&buf, ",dies=%u", def->cpu->dies);

View File

@ -1583,6 +1583,7 @@ virVMXParseConfig(virVMXContext *ctx,
goto cleanup; goto cleanup;
} }
cpu->dies = 1; cpu->dies = 1;
cpu->clusters = 1;
cpu->cores = coresPerSocket; cpu->cores = coresPerSocket;
cpu->threads = 1; cpu->threads = 1;
@ -3377,6 +3378,12 @@ virVMXFormatConfig(virVMXContext *ctx, virDomainXMLOption *xmlopt, virDomainDef
goto cleanup; 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; calculated_vcpus = def->cpu->sockets * def->cpu->cores;
if (calculated_vcpus != maxvcpus) { if (calculated_vcpus != maxvcpus) {
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,

View File

@ -1,6 +1,6 @@
<cpu mode='custom' match='exact'> <cpu mode='custom' match='exact'>
<model fallback='allow'>486</model> <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='de'/>
<feature policy='require' name='tsc'/> <feature policy='require' name='tsc'/>
<feature policy='require' name='msr'/> <feature policy='require' name='msr'/>

View File

@ -1,6 +1,6 @@
<cpu mode='custom' match='exact'> <cpu mode='custom' match='exact'>
<model fallback='allow'>qemu64</model> <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='pbe'/>
<feature policy='force' name='monitor'/> <feature policy='force' name='monitor'/>
<feature policy='require' name='ssse3'/> <feature policy='require' name='ssse3'/>

View File

@ -1,6 +1,6 @@
<cpu mode='custom' match='exact'> <cpu mode='custom' match='exact'>
<model fallback='allow'>Penryn</model> <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='dca'/>
<feature policy='require' name='xtpr'/> <feature policy='require' name='xtpr'/>
<feature policy='disable' name='sse4.2'/> <feature policy='disable' name='sse4.2'/>

View File

@ -1,6 +1,6 @@
<cpu mode='custom' match='exact'> <cpu mode='custom' match='exact'>
<model fallback='allow'>Penryn</model> <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='dca'/>
<feature policy='require' name='xtpr'/> <feature policy='require' name='xtpr'/>
<feature policy='disable' name='sse4.2'/> <feature policy='disable' name='sse4.2'/>

View File

@ -1,7 +1,7 @@
<cpu mode='custom' match='exact'> <cpu mode='custom' match='exact'>
<model fallback='forbid'>Penryn</model> <model fallback='forbid'>Penryn</model>
<vendor>Intel</vendor> <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='dca'/>
<feature policy='require' name='xtpr'/> <feature policy='require' name='xtpr'/>
<feature policy='require' name='tm2'/> <feature policy='require' name='tm2'/>

View File

@ -1,6 +1,6 @@
<cpu mode='custom' match='exact'> <cpu mode='custom' match='exact'>
<model fallback='allow'>Haswell</model> <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='rtm'/>
<feature policy='disable' name='hle'/> <feature policy='disable' name='hle'/>
</cpu> </cpu>

View File

@ -1,6 +1,6 @@
<cpu mode='custom' match='exact'> <cpu mode='custom' match='exact'>
<model fallback='allow'>Haswell</model> <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='hle'/>
<feature policy='disable' name='rtm'/> <feature policy='disable' name='rtm'/>
</cpu> </cpu>

View File

@ -1,4 +1,4 @@
<cpu mode='custom' match='exact'> <cpu mode='custom' match='exact'>
<model fallback='allow'>Haswell-noTSX</model> <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> </cpu>

View File

@ -1,6 +1,6 @@
<cpu mode='custom' match='exact'> <cpu mode='custom' match='exact'>
<model fallback='allow'>Penryn</model> <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='dca'/>
<feature policy='disable' name='xtpr'/> <feature policy='disable' name='xtpr'/>
<feature policy='disable' name='sse4.2'/> <feature policy='disable' name='sse4.2'/>

View File

@ -44,7 +44,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>POWER9</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -44,7 +44,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>POWER9</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -44,7 +44,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>POWER9</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -44,7 +44,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>POWER9</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -20,7 +20,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -20,7 +20,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -20,7 +20,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -20,7 +20,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -18,7 +18,7 @@
<cpu mode='custom' match='exact' check='partial'> <cpu mode='custom' match='exact' check='partial'>
<model fallback='allow'>core2duo</model> <model fallback='allow'>core2duo</model>
<vendor>Intel</vendor> <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='lahf_lm'/>
<feature policy='require' name='xtpr'/> <feature policy='require' name='xtpr'/>
<feature policy='require' name='cx16'/> <feature policy='require' name='cx16'/>

View File

@ -18,7 +18,7 @@
<cpu mode='custom' match='exact' check='partial'> <cpu mode='custom' match='exact' check='partial'>
<model fallback='allow'>core2duo</model> <model fallback='allow'>core2duo</model>
<vendor>Intel</vendor> <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='lahf_lm'/>
<feature policy='require' name='xtpr'/> <feature policy='require' name='xtpr'/>
<feature policy='require' name='cx16'/> <feature policy='require' name='cx16'/>

View File

@ -15,7 +15,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -15,7 +15,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-7' memory='14680064' unit='KiB'/> <cell id='0' cpus='0-7' memory='14680064' unit='KiB'/>
</numa> </numa>

View File

@ -15,7 +15,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-7,16-19' memory='14680064' unit='KiB'/> <cell id='0' cpus='0-7,16-19' memory='14680064' unit='KiB'/>
<cell id='1' cpus='8-15' memory='14680064' unit='KiB' memAccess='shared'/> <cell id='1' cpus='8-15' memory='14680064' unit='KiB' memAccess='shared'/>

View File

@ -15,7 +15,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1,6-31' memory='14680064' unit='KiB'/> <cell id='0' cpus='0-1,6-31' memory='14680064' unit='KiB'/>
<cell id='1' cpus='2-3' memory='14680064' unit='KiB' memAccess='shared'/> <cell id='1' cpus='2-3' memory='14680064' unit='KiB' memAccess='shared'/>

View File

@ -17,7 +17,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='1048576' unit='KiB'/> <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
</numa> </numa>

View File

@ -19,7 +19,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-7' memory='14680064' unit='KiB'/> <cell id='0' cpus='0-7' memory='14680064' unit='KiB'/>
</numa> </numa>

View File

@ -22,7 +22,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-7' memory='14680064' unit='KiB'/> <cell id='0' cpus='0-7' memory='14680064' unit='KiB'/>
</numa> </numa>

View File

@ -15,7 +15,7 @@
</idmap> </idmap>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='219136' unit='KiB'/> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
</numa> </numa>

View File

@ -15,7 +15,7 @@
</idmap> </idmap>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='219136' unit='KiB'/> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
</numa> </numa>

View File

@ -15,7 +15,7 @@
</idmap> </idmap>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='219136' unit='KiB'/> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
</numa> </numa>

View File

@ -15,7 +15,7 @@
</idmap> </idmap>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='219136' unit='KiB'/> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
</numa> </numa>

View File

@ -15,7 +15,7 @@
</idmap> </idmap>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='219136' unit='KiB'/> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
</numa> </numa>

View File

@ -15,7 +15,7 @@
</idmap> </idmap>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='1048576' unit='KiB'/> <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
</numa> </numa>

View File

@ -11,7 +11,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='2095104' unit='KiB'/> <cell id='0' cpus='0-1' memory='2095104' unit='KiB'/>
</numa> </numa>

View File

@ -11,7 +11,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='2095104' unit='KiB'/> <cell id='0' cpus='0-1' memory='2095104' unit='KiB'/>
</numa> </numa>

View File

@ -10,7 +10,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-3,8-11' memory='109550' unit='KiB'/> <cell id='0' cpus='0-3,8-11' memory='109550' unit='KiB'/>
<cell id='1' cpus='4-7,12-15' memory='109550' unit='KiB'/> <cell id='1' cpus='4-7,12-15' memory='109550' unit='KiB'/>

View File

@ -10,7 +10,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-5' memory='109550' unit='KiB'/> <cell id='0' cpus='0-5' memory='109550' unit='KiB'/>
<cell id='1' cpus='11-15' memory='109550' unit='KiB'/> <cell id='1' cpus='11-15' memory='109550' unit='KiB'/>

View File

@ -10,7 +10,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-7' memory='109550' unit='KiB' memAccess='shared'/> <cell id='0' cpus='0-7' memory='109550' unit='KiB' memAccess='shared'/>
<cell id='1' cpus='8-15' memory='109550' unit='KiB' memAccess='private'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB' memAccess='private'/>

View File

@ -10,7 +10,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-7' memory='109550' unit='KiB'/> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/>
<cell id='1' cpus='8-15' memory='109550' unit='KiB'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/>

View File

@ -10,7 +10,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-7' memory='109550' unit='KiB'/> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/>
<cell id='1' cpus='8-15' memory='109550' unit='KiB'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/>

View File

@ -10,7 +10,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-7' memory='109550' unit='KiB'/> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/>
<cell id='1' cpus='8-15' memory='109550' unit='KiB'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/>

View File

@ -11,7 +11,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='219136' unit='KiB'/> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
</numa> </numa>

View File

@ -15,7 +15,7 @@
</idmap> </idmap>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='219136' unit='KiB'/> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
</numa> </numa>

View File

@ -11,7 +11,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='2095104' unit='KiB'/> <cell id='0' cpus='0-1' memory='2095104' unit='KiB'/>
</numa> </numa>

View File

@ -11,7 +11,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>POWER9</model> <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> <numa>
<cell id='0' cpus='0-1' memory='1048576' unit='KiB'/> <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
</numa> </numa>

View File

@ -11,7 +11,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>POWER9</model> <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> <numa>
<cell id='0' cpus='0-1' memory='1048576' unit='KiB'/> <cell id='0' cpus='0-1' memory='1048576' unit='KiB'/>
</numa> </numa>

View File

@ -11,7 +11,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-1' memory='219136' unit='KiB'/> <cell id='0' cpus='0-1' memory='219136' unit='KiB'/>
</numa> </numa>

View File

@ -13,7 +13,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -13,7 +13,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -13,7 +13,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -10,7 +10,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -10,7 +10,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-7' memory='109550' unit='KiB'/> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/>
<cell id='1' cpus='8-15' memory='109550' unit='KiB'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/>

View File

@ -10,7 +10,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>qemu64</model> <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> <numa>
<cell id='0' cpus='0-7' memory='109550' unit='KiB'/> <cell id='0' cpus='0-7' memory='109550' unit='KiB'/>
<cell id='1' cpus='8-15' memory='109550' unit='KiB'/> <cell id='1' cpus='8-15' memory='109550' unit='KiB'/>

View File

@ -14,7 +14,7 @@
</os> </os>
<cpu mode='custom' match='exact' check='none'> <cpu mode='custom' match='exact' check='none'>
<model fallback='forbid'>POWER9</model> <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> <numa>
<cell id='0' cpus='0-3' memory='1048576' unit='KiB'/> <cell id='0' cpus='0-3' memory='1048576' unit='KiB'/>
<cell id='1' cpus='4-7' memory='1048576' unit='KiB'/> <cell id='1' cpus='4-7' memory='1048576' unit='KiB'/>

View File

@ -12,7 +12,7 @@
<type arch='x86_64'>hvm</type> <type arch='x86_64'>hvm</type>
</os> </os>
<cpu> <cpu>
<topology sockets='1' dies='1' cores='2' threads='1'/> <topology sockets='1' dies='1' clusters='1' cores='2' threads='1'/>
</cpu> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -11,7 +11,7 @@
<type arch='x86_64'>hvm</type> <type arch='x86_64'>hvm</type>
</os> </os>
<cpu> <cpu>
<topology sockets='4' dies='1' cores='2' threads='1'/> <topology sockets='4' dies='1' clusters='1' cores='2' threads='1'/>
</cpu> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>

View File

@ -12,7 +12,7 @@
<type arch='x86_64'>hvm</type> <type arch='x86_64'>hvm</type>
</os> </os>
<cpu> <cpu>
<topology sockets='4' dies='1' cores='4' threads='1'/> <topology sockets='4' dies='1' clusters='1' cores='4' threads='1'/>
</cpu> </cpu>
<clock offset='utc'/> <clock offset='utc'/>
<on_poweroff>destroy</on_poweroff> <on_poweroff>destroy</on_poweroff>