[PATCH 0 of 5] RFC: Handling of sparse, memoryless, and cpuless nodes

"Tim Pepper" <[email protected]>
Newsgroups org.kernel.vger.linux-numa
Message-ID <[email protected]>
In response to a bug report where 'numactl --hardware' was segfaulting
with distro 2.0.3 version I've dug into the current state of
libnuma/numactl after not having looked at it in quite some time.  The
following series of patches resulted and hopefully clarifies things a bit
for the next person who comes along and accounts for the possibility of
sparsely numbered, memoryless and cpuless nodes in 'numactl --hardware'.
There are certainly some things in the patches that aren't quite optimal
and other things I saw that I didn't try to tackle (eg: there is a lot
of seeming inconsistency around the different "all" node pointers),
but the updated code works for me and I was trying to limit changes to
not start driving in the direction of a v3 library (or hwloc?).

The first 4 patches are relatively minor cleanups.

The bulk is in patch 5 which then deals with better handling sparse node
numbering and fixes parse_numbers() in particular which was experiencing
a buffer overflow in the face of this topology:

available: 2 nodes (0,3)
node 0 cpus: none
node 0 size: 0 MB
node 0 free: 0 MB
node 3 cpus: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
node 3 size: 15360 MB
node 3 free: 12524 MB
node distances:
node 0 3
 0: 10 40
 3: 40 10

I've tested the changes on "interesting" topology hardware to which I
have access, but would greatly appreciate if others might do similar.

-- 
Tim Pepper  <[email protected]>
IBM Linux Technology Center
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.