[libvirt] [PATCH] nodeinfo: Add workaround if kernel reports bogous numa topology.
Eric Blake
eblake at redhat.com
Tue Oct 30 20:08:35 UTC 2012
On 10/30/2012 05:07 AM, Peter Krempa wrote:
> Forwarding the response from George-Cristian Bîrzan who initialy
> reported that:
>
> George-Cristian has a bunch of identical machines where some report
> having 4 NUMA cells and some just 1:
>
> [...]
>
> I did it on two hosts, one with 1 NUMA cell, one with 4 (as I said before,
> they both only report 12 cores though):
>
> http://birzan.org/proc1.png
> http://birzan.org/proc4.png
Both bitmaps show all 24 cores, so hwloc is able to read sysfs and
determine the existence of 2 sockets with 12 nodes each, and where the
12 nodes are numbered 0-5 twice according to which bank of cache they
are tied to. Which version of libvirt is this tested on where libvirt
was only reporting 12 cores, because I thought we already patched that
with commit 80533ca in 0.10.0. That is, I think proc1.png should result in:
$ virsh nodeinfo
CPU model: x86_64
CPU(s): 24
CPU frequency: 2200 MHz
CPU socket(s): 2
Core(s) per socket: 12
Thread(s) per core: 1
NUMA cell(s): 1
Memory size: 8047272 KiB
and proc4.png would _ideally_ result in:
$ virsh nodeinfo
CPU model: x86_64
CPU(s): 24
CPU frequency: 2200 MHz
CPU socket(s): 2
Core(s) per socket: 12
Thread(s) per core: 1
NUMA cell(s): 4
Memory size: 8047272 KiB
except that virNodeGetInfo() is constrained by backwards compatibility
to report 'nodes' == 1 on situations where sockets per node is not
integral (and here, half a socket per node is not integral), so it
_actually_ would give the same data as proc1.png.
>
> ------
>
> I think we should take this patch as it resolves this case. The data
> reported by kernel looks OK and the kernel probably trusts that
> everything is OK.
At any rate, I'm looking again at the patch, and the proposed
linux-test7/node data indeed shows a single NUMA cell with 24 cores
(matching up to the proc1.png image).
I think the CPU _is_ reporting the complete NUMA topology through sysfs,
but that we are probably consolidating information from the wrong files
and therefore getting confused.
I guess I need to install the linux-test7 files, then step through the
code to see what is actually happening.
Also, what does the 'virsh capabilities' report for the <topology>
section? Whereas 'virsh nodeinfo' is constrained by back-compat to give
a lame answer for number of NUMA cells, at least 'virsh capabilities'
should be showing a reasonable representation of the machine's topology.
--
Eric Blake eblake at redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 617 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20121030/b72d708b/attachment-0001.sig>
More information about the libvir-list
mailing list