Blame SOURCES/irqbalance-node-package.patch

f4e338
diff --git a/cputree.c b/cputree.c
f4e338
index 4d09c0e..0f14cfb 100644
f4e338
--- a/cputree.c
f4e338
+++ b/cputree.c
f4e338
@@ -357,6 +357,8 @@ static void do_one_cpu(char *path)
f4e338
 
f4e338
 	nodeid=-1;
f4e338
 	if (numa_avail) {
f4e338
+		struct topo_obj *node;
f4e338
+
f4e338
 		dir = opendir(path);
f4e338
 		do {
f4e338
 			entry = readdir(dir);
f4e338
@@ -368,6 +370,12 @@ static void do_one_cpu(char *path)
f4e338
 			}
f4e338
 		} while (entry);
f4e338
 		closedir(dir);
f4e338
+
f4e338
+		node = get_numa_node(nodeid);
f4e338
+		if (node && (cpus_weight(package_mask) > cpus_weight(node->mask))) {
f4e338
+			cpus_and(package_mask, package_mask, node->mask);
f4e338
+			packageid = nodeid;
f4e338
+		}
f4e338
 	}
f4e338
 
f4e338
 	/*