In the 'topology' element it is mentioned, regarding the sockets
value, "They refer to the total number of CPU sockets".
This is not accurate. What we're doing is calculating the number
of sockets per NUMA node, which can be checked in the current
implementation of virHostCPUGetInfoPopulateLinux(). Calculating
the total number of sockets would break the topology sanity
check nodes*sockets*cores*threads=online_cpus.
This documentation fix is important to avoid user confusion when
seeing the output of 'virsh capabilities' and expecting it to be
equal to the output of 'lscpu'. E.g in a Power 9 host this 'lscpu'
output:
Architecture: ppc64le
Byte Order: Little Endian
CPU(s): 160
On-line CPU(s) list: 0-159
Thread(s) per core: 4
Core(s) per socket: 20
Socket(s): 2
NUMA node(s): 2
Model: 2.2 (pvr 004e 1202)
Model name: POWER9, altivec supported
And this XML output from virsh capabilities:
<cpu>
<arch>ppc64le</arch>
<model>POWER9</model>
<vendor>IBM</vendor>
<topology sockets='1' dies='1' cores='20'
threads='4'/>
(...)
</cpu>
Both are correct, as long as we mention in the Libvirt documentation
that 'sockets' in the topology element represents the number of sockets
per NUMA node.
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
docs/formatdomain.html.in | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index aaeb05961f..7940d6ace5 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -1675,9 +1675,9 @@
<dd>The <code>topology</code> element specifies requested
topology of
virtual CPU provided to the guest. Four attributes,
<code>sockets</code>,
<code>dies</code>, <code>cores</code>, and
<code>threads</code>,
- accept non-zero positive integer values. They refer to the total number
- of CPU sockets, number of dies per socket, number of cores per die, and
- number of threads per core, respectively. The <code>dies</code>
+ accept non-zero positive integer values. They refer to the number of
+ CPU sockets per NUMA node, number of dies per socket, number of cores
+ per die, and number of threads per core, respectively. The
<code>dies</code>
attribute is optional and will default to 1 if omitted, while the other
attributes are all mandatory. Hypervisors may require that the maximum
number of vCPUs specified by the <code>cpus</code> element equals to
--
2.25.1