Blame SOURCES/numactl-2.0.11-libnuma-supress-warnings-for-non-existing-node.patch

d02900
From a69169698c4c086b7a74602938b329fb055fdf60 Mon Sep 17 00:00:00 2001
d02900
From: Petr Holasek <pholasek@redhat.com>
d02900
Date: Mon, 7 Dec 2015 15:32:29 +0100
d02900
Subject: [PATCH] libnuma: supress warnings for non-existing node
d02900
d02900
When calling numa_node_to_cpus on non-existing node number (e.g. for
d02900
non-contiguous node numbers), a bit confusing warning is supressed. Since
d02900
warnings are implemented as weak functions they cannot be overriden when
d02900
using dlsym interface.
d02900
d02900
Signed-off-by: Petr Holasek <pholasek@redhat.com>
d02900
---
d02900
 libnuma.c | 24 ++++++++++++++----------
d02900
 1 file changed, 14 insertions(+), 10 deletions(-)
d02900
d02900
diff --git a/libnuma.c b/libnuma.c
d02900
index 3717d5b..549525c 100644
d02900
--- a/libnuma.c
d02900
+++ b/libnuma.c
d02900
@@ -1276,11 +1276,13 @@ numa_node_to_cpus_v1(int node, unsigned long *buffer, int bufferlen)
d02900
 	sprintf(fn, "/sys/devices/system/node/node%d/cpumap", node);
d02900
 	f = fopen(fn, "r");
d02900
 	if (!f || getdelim(&line, &len, '\n', f) < 1) {
d02900
-		numa_warn(W_nosysfs2,
d02900
-		   "/sys not mounted or invalid. Assuming one node: %s",
d02900
-			  strerror(errno));
d02900
-		numa_warn(W_nosysfs2,
d02900
-		   "(cannot open or correctly parse %s)", fn);
d02900
+		if (numa_bitmask_isbitset(numa_nodes_ptr, node)) {
d02900
+			numa_warn(W_nosysfs2,
d02900
+			   "/sys not mounted or invalid. Assuming one node: %s",
d02900
+				  strerror(errno));
d02900
+			numa_warn(W_nosysfs2,
d02900
+			   "(cannot open or correctly parse %s)", fn);
d02900
+		}
d02900
 		bitmask.maskp = (unsigned long *)mask;
d02900
 		bitmask.size  = buflen_needed * 8;
d02900
 		numa_bitmask_setall(&bitmask);
d02900
@@ -1355,11 +1357,13 @@ numa_node_to_cpus_v2(int node, struct bitmask *buffer)
d02900
 	sprintf(fn, "/sys/devices/system/node/node%d/cpumap", node); 
d02900
 	f = fopen(fn, "r"); 
d02900
 	if (!f || getdelim(&line, &len, '\n', f) < 1) { 
d02900
-		numa_warn(W_nosysfs2,
d02900
-		   "/sys not mounted or invalid. Assuming one node: %s",
d02900
-			  strerror(errno)); 
d02900
-		numa_warn(W_nosysfs2,
d02900
-		   "(cannot open or correctly parse %s)", fn);
d02900
+		if (numa_bitmask_isbitset(numa_nodes_ptr, node)) {
d02900
+			numa_warn(W_nosysfs2,
d02900
+			   "/sys not mounted or invalid. Assuming one node: %s",
d02900
+				  strerror(errno)); 
d02900
+			numa_warn(W_nosysfs2,
d02900
+			   "(cannot open or correctly parse %s)", fn);
d02900
+		}
d02900
 		numa_bitmask_setall(mask);
d02900
 		err = -1;
d02900
 	} 
d02900
-- 
d02900
2.4.3
d02900