[RFC] irqbalance: Mark in-kernel irqbalance as obsolete, set to Nby default

From: Auke Kok
Date: Mon Jul 31 2006 - 13:34:24 EST



We've recently seen a number of user bug reports against e1000 that the in-kernel irqbalance code is detrimental to network latency. The algorithm keeps swapping irq's for NICs from cpu to cpu causing extremely high network latency (>1000ms). Another NIC driver (cxgb) already has severe warnings in their documentation file against using CONFIG_IRQBALANCE, but this is a general problem for all NIC drivers and other subsystems. This is especially so with cpufreq scaling where the system is slowed down and the migrations take much longer.

I suggest that the in-kernel irqbalance is phased out, by marking it OBSOLETE first and (perhaps) removing the code later. The userspace irqbalance daemon written by Arjan van de Ven does a wonderful job and should be used instead.

Signed-off-by: Auke Kok <auke-jan.h.kok@xxxxxxxxx>

---

Kconfig | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig
index daa75ce..5a40cfe 100644
--- a/arch/i386/Kconfig
+++ b/arch/i386/Kconfig
@@ -690,12 +690,19 @@ config EFI
kernel should continue to boot on existing non-EFI platforms.

config IRQBALANCE
- bool "Enable kernel irq balancing"
+ bool "Enable kernel irq balancing (obsolete)"
depends on SMP && X86_IO_APIC
- default y
+ default n
help
- The default yes will allow the kernel to do irq load balancing.
- Saying no will keep the kernel from doing irq load balancing.
+ The kernel irq balance will migrate interrupts between cpu's
+ constantly, which may help reduce load in some cases. It is not
+ beneficial for latency however, and a user-space daemon is available
+ that does a much better job.
+
+ The default no will keep the kernel from doing irq load balancing.
+ Say yes will allow the kernel to do irq load balancing.
+
+ If unsure, say N.

# turning this on wastes a bunch of space.
# Summit needs it only when NUMA is on