The IBM PowerNV systems include NUMA nodes that don't have associated CPUs or hugepage memory. Here is an example on an IBM AC922 system:
$ lscpu ... NUMA node0 CPU(s): 0-63 NUMA node8 CPU(s): 64-127 NUMA node252 CPU(s): ... $ numastat -m ... Node 0 Node 8 Node 252 --------------- --------------- --------------- MemTotal 126763.19 130785.06 0.00 MemFree 119513.38 125294.44 0.00 MemUsed 7249.81 5490.62 0.00 ... HugePages_Total 4.00 1734.00 0.00 HugePages_Free 0.00 4.00 0.00 HugePages_Surp 4.00 1730.00 0.00 ... Modify dpdk-hugepages.py to test for the ../hugepages directory before attempting to parse the hugepage entries. Signed-off-by: David Christensen <d...@linux.vnet.ibm.com> --- usertools/dpdk-hugepages.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/usertools/dpdk-hugepages.py b/usertools/dpdk-hugepages.py index 1be100ca3..89945f187 100755 --- a/usertools/dpdk-hugepages.py +++ b/usertools/dpdk-hugepages.py @@ -70,13 +70,14 @@ def show_numa_pages(): for numa_path in glob.glob('/sys/devices/system/node/node*'): node = numa_path[29:] # slice after /sys/devices/system/node/node path = numa_path + '/hugepages' - for hdir in os.listdir(path): - pages = get_hugepages(path + '/' + hdir) - if pages > 0: - kb = int(hdir[10:-2]) # slice out of hugepages-NNNkB - print('{:<4} {:<5} {:<6} {}'.format(node, pages, - fmt_memsize(kb), - fmt_memsize(pages * kb))) + if os.path.exists(path): + for hdir in os.listdir(path): + pages = get_hugepages(path + '/' + hdir) + if pages > 0: + kb = int(hdir[10:-2]) # slice out of hugepages-NNNkB + print('{:<4} {:<5} {:<6} {}'.format(node, pages, + fmt_memsize(kb), + fmt_memsize(pages * kb))) def show_non_numa_pages(): -- 2.27.0