[libvirt] [PATCH] nodeinfo: Add workaround if kernel reports bogous numa topology.

George-Cristian Bîrzan gc at birzan.org
Wed Oct 31 14:50:16 UTC 2012


On Tue, Oct 30, 2012 at 10:08 PM, Eric Blake <eblake at redhat.com> wrote:

> 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
>
>
(Just for clarity, I am the original reporter, sorry I couldn't answer
earlier, I subscribed to the list too late and didn't want to break the
thread)

On the host with 1 NUMA cell, with libvrit 0.10.2 I get:

[root at host29 ~]# virsh nodeinfo
CPU model:           x86_64
CPU(s):              24
CPU frequency:       2200 MHz
CPU socket(s):       2
Core(s) per socket:  6
Thread(s) per core:  1
NUMA cell(s):        1
Memory size:         131971548 KiB

Furthermore, to answer the question at the bottom of your email,
http://birzan.org/capabilities1.txt has this info.


> 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
>
>
[root at host34 ~]# virsh nodeinfo
CPU model:           x86_64
CPU(s):              24
CPU frequency:       2200 MHz
CPU socket(s):       2
Core(s) per socket:  6
Thread(s) per core:  1
NUMA cell(s):        1
Memory size:         131971020 kB

And http://birzan.org/capabilities4.txt

This is on 0.9.11.5, on 0.10.2:

[root at host34 libvirt]# virsh nodeinfo
CPU model:           x86_64
CPU(s):              24
CPU frequency:       2200 MHz
CPU socket(s):       1
Core(s) per socket:  6
Thread(s) per core:  1
NUMA cell(s):        4
Memory size:         131971020 KiB

and http://birzan.org/capabilities4-newlibvirt.txt

This has made the problem even worse, as we now can only use 6 cores out of
24 by default (libvirt pins qemus to the CPUs is sees available, so we have
to manually taskset them after starting).


> 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.
>
> The sysfs is tarred up in http://birzan.org/sysdevicessystem.tar.gz for
host29 (the one with 1 numa cell in capabilities) and
http://birzan.org/sysdevicessystem-34.tar.gz


> 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.
>
>
I answered this above. If you need any more info, feel free to ask.


-- 
George-Cristian Bîrzan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20121031/2a96fb25/attachment-0001.htm>


More information about the libvir-list mailing list