[libvirt] [PATCH] Make nodeGetInfo report the correct number of NUMA nodes.
Chris Lalancette
clalance at redhat.com
Fri Mar 12 15:38:14 UTC 2010
On 03/12/2010 10:10 AM, Luiz Capitulino wrote:
>
> Hi Chris,
>
> On Thu, 11 Mar 2010 18:00:56 -0500
> Chris Lalancette <clalance at redhat.com> wrote:
>
>> 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 at redhat.com>
>> ---
>> src/nodeinfo.c | 6 +++++-
>> 1 files changed, 5 insertions(+), 1 deletions(-)
>>
>> diff --git a/src/nodeinfo.c b/src/nodeinfo.c
>> index 0748602..8d7e055 100644
>> --- a/src/nodeinfo.c
>> +++ b/src/nodeinfo.c
>> @@ -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 */
>
> This commit breaks the build for me with the following message:
>
> """
> cc1: warnings being treated as errors
> nodeinfo.c: In function 'linuxNodeInfoCPUPopulate':
> nodeinfo.c:163: error: implicit declaration of function 'numa_available'
> nodeinfo.c:163: error: nested extern declaration of 'numa_available'
> nodeinfo.c:166: error: implicit declaration of function 'numa_max_node'
> nodeinfo.c:166: error: nested extern declaration of 'numa_max_node'
> make[3]: *** [libvirt_driver_la-nodeinfo.lo] Error 1
> make[3]: *** Waiting for unfinished jobs....
> ...
> """
>
> The code in this file that uses the same functions seems to be protected
> by the HAVE_NUMACTL macro.
Yeah, you are right. Sorry about that. Followup patch coming.
--
Chris Lalancette
More information about the libvir-list
mailing list