Hi Cliff, I am suggesting this new patch, which applies on top of the previous two (which I think you have already added to 2.0.3-rc2). This patch avoids showing those NUMA nodes which are unavailable when showing the NUMA distances too. So, currently (with previous two patches applied) the NUMA distance table for non-contiguous NODES looks something like this (assuming nodes 2 and 3 are not existing) : node 0 1 2 3 4 5 0: 10 20 0 0 20 20 1: 20 10 0 0 20 20 2: 0 0 0 0 0 0 3: 0 0 0 0 0 0 4: 20 20 0 0 10 20 5: 20 20 0 0 20 10 Please note that for non-existing NODES 2 and 3, a NUMA distance of "0" is being shown, which doesn't make sense. Hence I propose this patch which will skip the unavailable nodes (in this case NODE 2 and 3), while printing the NUMA distances and the output on the same machine will look something like: node 0 1 4 5 0: 10 20 20 20 1: 20 10 20 20 4: 20 20 10 20 5: 20 20 20 10 Please find the patch below. Thanks! Signed-off-by: Amit K Arora <aarora@xxxxxxxxxxxxxxxxxx> diff -Nuarp numactl-2.0.3-rc2.ORG/numactl.c numactl-2.0.3-rc2/numactl.c --- numactl-2.0.3-rc2.ORG/numactl.c 2009-03-09 18:43:05.000000000 +0530 +++ numactl-2.0.3-rc2/numactl.c 2009-03-09 18:43:14.000000000 +0530 @@ -187,12 +187,16 @@ static void print_distances(int maxnode) printf("node distances:\n"); printf("node "); for (i = 0; i <= maxnode; i++) - printf("% 3d ", i); + if (numa_bitmask_isbitset(numa_all_nodes_ptr, i)) + printf("% 3d ", i); printf("\n"); for (i = 0; i <= maxnode; i++) { + if (!numa_bitmask_isbitset(numa_all_nodes_ptr, i)) + continue; printf("% 3d: ", i); - for (k = 0; k <= maxnode; k++) - printf("% 3d ", numa_distance(i,k)); + for (k = 0; k <= maxnode; k++) + if (numa_bitmask_isbitset(numa_all_nodes_ptr, k)) + printf("% 3d ", numa_distance(i,k)); printf("\n"); } } -- Regards, Amit Arora -- To unsubscribe from this list: send the line "unsubscribe linux-numa" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html