[PATCH] libnuma_node_not_sequential libnuma.so function numa_node_of_cpu() doesn't use previously created list of valid nodes but use the entire array indexed with the maximum number of nodes available on the system. Fix is to check node is valid before calling numa_node_to_cpus_v2_int() which check that the cpu belongs to that node. .

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Thierry Fauck <thierry@xxxxxxxxxxxxxxxxxx>

Signed-off-by: Thierry Fauck <thierry@xxxxxxxxxxxxxxxxxx>

	modified:   libnuma.c
---
 libnuma.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/libnuma.c b/libnuma.c
index 91425ae..5961df5 100644
--- a/libnuma.c
+++ b/libnuma.c
@@ -1405,10 +1405,12 @@ int numa_node_of_cpu(int cpu)
 	bmp = numa_bitmask_alloc(ncpus);
 	nnodes = numa_max_node();
 	for (node = 0; node <= nnodes; node++){
-		numa_node_to_cpus_v2_int(node, bmp);
-		if (numa_bitmask_isbitset(bmp, cpu)){
-			ret = node;
-			goto end;
+		if (_getbit(numa_nodes_ptr,node)) {
+			numa_node_to_cpus_v2_int(node, bmp);
+			if (numa_bitmask_isbitset(bmp, cpu)){
+				ret = node;
+				goto end;
+			}
 		}
 	}
 	ret = -1;
-- 
2.1.0

--
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




[Index of Archives]     [Linux Kernel]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]     [Devices]

  Powered by Linux