[irqbalance] Resolves: bz 746159

Neil Horman nhorman at fedoraproject.org
Mon Oct 17 18:51:37 UTC 2011


commit b1b570c5ce82f83798750ea069e1b2f1a7c5dade
Author: Neil Horman <nhorman at tuxdriver.com>
Date:   Mon Oct 17 14:51:21 2011 -0400

    Resolves: bz 746159
    
    Note: Committed upstream as a81cd26ab4d4a09f3345b2b391a12ee39af676b2

 irqbalance-bz746159-no-numa-nodes.patch |   46 +++++++++++++++++++++++++++++++
 irqbalance.spec                         |    7 ++++-
 2 files changed, 52 insertions(+), 1 deletions(-)
---
diff --git a/irqbalance-bz746159-no-numa-nodes.patch b/irqbalance-bz746159-no-numa-nodes.patch
new file mode 100644
index 0000000..42ec5e0
--- /dev/null
+++ b/irqbalance-bz746159-no-numa-nodes.patch
@@ -0,0 +1,46 @@
+diff --git a/numa.c b/numa.c
+index 6e00243..0d93091 100644
+--- a/numa.c
++++ b/numa.c
+@@ -84,6 +84,14 @@ void build_numa_node_list(void)
+ 	DIR *dir = opendir(SYSFS_NODE_PATH);
+ 	struct dirent *entry;
+ 
++	/*
++	 * Add the unspecified node
++	 */
++	numa_nodes = g_list_append(numa_nodes, &unspecified_node);
++
++	if (!dir)
++		return;
++
+ 	do {
+ 		entry = readdir(dir);
+ 		if (!entry)
+@@ -96,6 +104,9 @@ void build_numa_node_list(void)
+ 
+ static void free_numa_node(gpointer data)
+ {
++	if (data == (void *)(&unspecified_node))
++		return;
++
+ 	free(data);
+ }
+ 
+diff --git a/placement.c b/placement.c
+index a5b976b..113891b 100644
+--- a/placement.c
++++ b/placement.c
+@@ -46,6 +46,12 @@ static void find_best_object(struct topo_obj *d, void *data)
+ 	cpumask_t subset;
+ 
+ 	/*
++ 	 * Don't consider the unspecified numa node here
++ 	 */
++	if ((d->obj_type == OBJ_TYPE_NODE) && (d->number == -1))
++		return;
++
++	/*
+  	 * If the hint policy is subset, then we only want 
+  	 * to consider objects that are within the irqs hint, but
+  	 * only if that irq in fact has published a hint
diff --git a/irqbalance.spec b/irqbalance.spec
index 37c0cde..99d7bfb 100644
--- a/irqbalance.spec
+++ b/irqbalance.spec
@@ -1,6 +1,6 @@
 Name:           irqbalance
 Version:        1.0
-Release:        1%{?dist}
+Release:        2%{?dist}
 Epoch:          2
 Summary:        IRQ balancing daemon
 
@@ -9,6 +9,7 @@ License:        GPLv2
 Url:            http://irqbalance.org/
 Source0:        http://irqbalance.googlecode.com/files/irqbalance-%{version}.tbz2
 Source1:        irqbalance.sysconfig
+Patch0:		irqbalance-bz746159-no-numa-nodes.patch
 
 BuildRequires:  autoconf automake libtool libcap-ng
 BuildRequires:  glib2-devel pkgconfig imake libcap-ng-devel numactl-devel
@@ -26,6 +27,7 @@ multiple CPUs for enhanced performance.
 
 %prep
 %setup -q -n irqbalance
+%patch0 -p1
 
 %build
 sh ./autogen.sh
@@ -75,6 +77,9 @@ fi
 /sbin/chkconfig --del irqbalance >/dev/null 2>&1 || :
 
 %changelog
+* Mon Oct 17 2011 Neil Horman <nhorman at redhat.com> - 2:1.0-2
+- Fix crash for systems with no numa node support
+
 * Wed Oct 12 2011 Neil Horman <nhorman at redhat.com> - 2:1.0-1
 - Update irqbalance to latest upstream version
 


More information about the scm-commits mailing list