Make nodeGetInfo report the correct number of NUMA nodes.

The nodeGetInfo code was always assuming that machine had a
single NUMA node, which is not correct.  The good news is that
libnuma gives us this information pretty easily, so let's
properly report it.

NOTE: With recent hardware starting to support CPU hot-add
and hot-remove, both this code and the nodeCapsInitNUMA()
code are quickly going to become obsolete.  We'll have to
think of a more dynamic solution for dealing with NUMA
nodes and CPUs that can come and go at will.

Signed-off-by: Chris Lalancette <clalance@redhat.com>
This commit is contained in:
Chris Lalancette 2010-03-11 15:45:11 -05:00
parent 3ebbc241a1
commit 83988bd43b

View File

@ -159,7 +159,11 @@ int linuxNodeInfoCPUPopulate(virConnectPtr conn, FILE *cpuinfo,
nodeinfo->cpus = 0;
nodeinfo->mhz = 0;
nodeinfo->nodes = nodeinfo->cores = 1;
nodeinfo->cores = 1;
if (numa_available() < 0)
nodeinfo->nodes = 1;
else
nodeinfo->nodes = numa_max_node() + 1;
/* NB: It is impossible to fill our nodes, since cpuinfo
* has no knowledge of NUMA nodes */