[irqbalance/f16] Resolves: bz781578
Neil Horman
nhorman at fedoraproject.org
Mon Jan 16 20:35:48 UTC 2012
commit dbff7c8caf90b5770740e69364f286ab21ef275c
Author: Neil Horman <nhorman at tuxdriver.com>
Date: Mon Jan 16 15:33:57 2012 -0500
Resolves: bz781578
irqbalance-bz781578-powerthresh-hysteresis.patch | 43 ++++++++++++++++++++++
irqbalance.spec | 8 ++++-
2 files changed, 50 insertions(+), 1 deletions(-)
---
diff --git a/irqbalance-bz781578-powerthresh-hysteresis.patch b/irqbalance-bz781578-powerthresh-hysteresis.patch
new file mode 100644
index 0000000..b9adedc
--- /dev/null
+++ b/irqbalance-bz781578-powerthresh-hysteresis.patch
@@ -0,0 +1,43 @@
+commit 5ed963e5cb88b32ecf220e2b155a3d88cddb838a
+Author: Neil Horman <nhorman at tuxdriver.com>
+Date: Tue Jan 3 12:54:15 2012 -0500
+
+ powerthresh: add hysteresis to powersave mode
+
+ We found that in some cases people were getting log spam from cpus constantly
+ leaving powersave mode. This ensures that at least one cpu is in powersave mode
+ before we re-enable powersave on all cpus.
+
+ Signed-off-by: Neil Horman <nhorman at tuxdriver.com>
+
+diff --git a/irqlist.c b/irqlist.c
+index c29ee84..36d4e0a 100644
+--- a/irqlist.c
++++ b/irqlist.c
+@@ -45,6 +45,7 @@ struct load_balance_info {
+ unsigned int num_within;
+ unsigned int num_over;
+ unsigned int num_under;
++ unsigned int num_powersave;
+ struct topo_obj *powersave;
+ };
+
+@@ -106,6 +107,9 @@ static void migrate_overloaded_irqs(struct topo_obj *obj, void *data)
+ struct load_balance_info *info = data;
+ int deviation;
+
++ if (obj->powersave_mode)
++ info->num_powersave++;
++
+ /*
+ * Don't rebalance irqs on objects whos load is below the average
+ */
+@@ -178,7 +182,7 @@ void update_migration_status(void)
+ info.powersave->powersave_mode = 1;
+ if (g_list_length(info.powersave->interrupts) > 0)
+ for_each_irq(info.powersave->interrupts, force_irq_migration, NULL);
+- } else if (info.num_over) {
++ } else if ((info.num_over) && (info.num_powersave)) {
+ syslog(LOG_INFO, "Load average increasing, re-enabling all cpus for irq balancing\n");
+ for_each_object(cpus, clear_powersave_mode, NULL);
+ }
diff --git a/irqbalance.spec b/irqbalance.spec
index bb8c687..dc38fe7 100644
--- a/irqbalance.spec
+++ b/irqbalance.spec
@@ -1,6 +1,6 @@
Name: irqbalance
Version: 1.0.3
-Release: 1%{?dist}
+Release: 2%{?dist}
Epoch: 2
Summary: IRQ balancing daemon
@@ -20,12 +20,15 @@ Requires(preun):systemd-units
ExclusiveArch: %{ix86} x86_64 ia64 ppc ppc64
+Patch0: irqbalance-bz781578-powerthresh-hysteresis.patch
+
%description
irqbalance is a daemon that evenly distributes IRQ load across
multiple CPUs for enhanced performance.
%prep
%setup -q
+%patch0 -p1
%build
%{configure}
@@ -74,6 +77,9 @@ fi
/sbin/chkconfig --del irqbalance >/dev/null 2>&1 || :
%changelog
+* Mon Jan 16 2012 Neil Horman <nhorman at redhat.com> - 2:1.0.3-2
+- Fixed log spew on powerthresh re-enablement (bz 781578)
+
* Fri Dec 02 2011 Neil Horman <nhorman at redhat.com> - 2:1.0.3-1
- Update to latest upstream (bz 759547)
More information about the scm-commits
mailing list