From c465ca7ca41aa03e755ed71fa0281c620b0d8dc0 Mon Sep 17 00:00:00 2001 From: Harish Date: Thu, 21 Jun 2018 17:22:36 +0530 Subject: [PATCH 3/7] Fix: distance test to include all existing nodes The previous implementation did not consider memory-less nodes as numa_num_configured_nodes() returns only nodes with memory and numa_node_size() check is unnecessary for distance check. Hence removed the check for memory. Signed-off-by: Harish Signed-off-by: Pingfan Liu --- test/distance.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/test/distance.c b/test/distance.c index fca109f..3471db6 100644 --- a/test/distance.c +++ b/test/distance.c @@ -5,21 +5,20 @@ int main(void) { - int numnodes, maxnode, a, b, got_nodes = 0; + int maxnode, a, b, got_nodes = 0; int *node_to_use; - long size, free_node_sizes; if (numa_available() < 0) { printf("no numa support in kernel\n"); exit(1); } - numnodes = numa_num_configured_nodes(); maxnode = numa_max_node(); - node_to_use = (int *)malloc(numnodes * sizeof(int)); + node_to_use = (int *)malloc(maxnode * sizeof(int)); for (a = 0; a <= maxnode; a++) { - size = numa_node_size(a, &free_node_sizes); - if(size != -1) + if (numa_bitmask_isbitset(numa_nodes_ptr, a)){ node_to_use[got_nodes++] = a; + } } + for (a = 0; a < got_nodes; a++){ printf("%03d: ", node_to_use[a]); if (numa_distance(node_to_use[a], node_to_use[a]) != 10) { -- 2.7.4