netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC] irqbalance: Mark in-kernel irqbalance as obsolete, set to N by default
@ 2006-07-31 17:35 Auke Kok
  2006-08-04  2:45 ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: Auke Kok @ 2006-07-31 17:35 UTC (permalink / raw)
  To: Linux Kernel Mailing List
  Cc: Jesse Brandeburg, Ronciak, John, Auke Kok, NetDev,
	Arjan van de Ven

[-- Attachment #1: Type: text/plain, Size: 931 bytes --]


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@intel.com>

---

  Kconfig |   15 +++++++++++----
  1 file changed, 11 insertions(+), 4 deletions(-)
---

[-- Attachment #2: mark_CONFIG_IRQBALANCE_as_obsolete.patch --]
[-- Type: text/x-patch, Size: 1013 bytes --]

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

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [RFC] irqbalance: Mark in-kernel irqbalance as obsolete, set to N by default
  2006-07-31 17:35 [RFC] irqbalance: Mark in-kernel irqbalance as obsolete, set to N by default Auke Kok
@ 2006-08-04  2:45 ` Andrew Morton
  2006-08-04 14:25   ` Auke Kok
  2006-08-04 14:36   ` Arjan van de Ven
  0 siblings, 2 replies; 5+ messages in thread
From: Andrew Morton @ 2006-08-04  2:45 UTC (permalink / raw)
  To: Auke Kok
  Cc: linux-kernel, jesse.brandeburg, john.ronciak, auke-jan.h.kok,
	netdev, arjan

On Mon, 31 Jul 2006 10:35:26 -0700
Auke Kok <auke-jan.h.kok@intel.com> wrote:

> 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).

What kernel versions?  Some IRQ balancer fixes went in shortly after 2.6.17.

It would be better if poss to fix the balancer rather than deprecating it.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] irqbalance: Mark in-kernel irqbalance as obsolete, set to N by default
  2006-08-04  2:45 ` Andrew Morton
@ 2006-08-04 14:25   ` Auke Kok
  2006-08-04 14:36   ` Arjan van de Ven
  1 sibling, 0 replies; 5+ messages in thread
From: Auke Kok @ 2006-08-04 14:25 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Auke Kok, linux-kernel, jesse.brandeburg, john.ronciak, netdev,
	arjan

Andrew Morton wrote:
> On Mon, 31 Jul 2006 10:35:26 -0700
> Auke Kok <auke-jan.h.kok@intel.com> wrote:
> 
>> 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).
> 
> What kernel versions?  Some IRQ balancer fixes went in shortly after 2.6.17.

user reports show 2.6.17.1 having the problem, I'm trying to get more details 
information, and will ask if 2.6.18rc3 or so does better for them.

Cheers,

Auke

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] irqbalance: Mark in-kernel irqbalance as obsolete, set to N by default
  2006-08-04  2:45 ` Andrew Morton
  2006-08-04 14:25   ` Auke Kok
@ 2006-08-04 14:36   ` Arjan van de Ven
  1 sibling, 0 replies; 5+ messages in thread
From: Arjan van de Ven @ 2006-08-04 14:36 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Auke Kok, linux-kernel, jesse.brandeburg, john.ronciak, netdev

Andrew Morton wrote:
> On Mon, 31 Jul 2006 10:35:26 -0700
> Auke Kok <auke-jan.h.kok@intel.com> wrote:
> 
>> 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).
> 
> What kernel versions?  Some IRQ balancer fixes went in shortly after 2.6.17.
> 
> It would be better if poss to fix the balancer rather than deprecating it.

to some degree the in kernel balancer cannot really make the level of decisions that a
userspace balancer can make, at least not without making all kernel developers vomit ;)
(for example the userspace balancer looks in /proc/interrupts and parses that to see
which interrupts are used by networking versus which by storage etc, and has different
balancing policies for those and other classes; the networking policy basically comes down to
"pin the interrupt unless some higher networking interrupt really gets in the way")

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [RFC] irqbalance: Mark in-kernel irqbalance as obsolete, set  to N by default
       [not found]   ` <6G9jL-1Yg-41@gated-at.bofh.it>
@ 2006-08-04 21:48     ` Bodo Eggert
  0 siblings, 0 replies; 5+ messages in thread
From: Bodo Eggert @ 2006-08-04 21:48 UTC (permalink / raw)
  To: Arjan van de Ven, Andrew Morton, Auke Kok, linux-kernel,
	jesse.brandeburg, john.ronciak, netdev

Arjan van de Ven <arjan@linux.intel.com> wrote:

> to some degree the in kernel balancer cannot really make the level of
> decisions that a userspace balancer can make, at least not without making all
> kernel developers vomit ;)

If you make the drivers set a flag if they know their interrupts should remain
mostly on one CPU, you can avoid the bad cases, and the rest you could gain
from using more clever algorithms should be(*) usurally less than what parsing
/proc/interrupts costs.

*) as in: I guess
-- 
Ich danke GMX dafür, die Verwendung meiner Adressen mittels per SPF
verbreiteten Lügen zu sabotieren.

http://david.woodhou.se/why-not-spf.html

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-08-04 21:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-07-31 17:35 [RFC] irqbalance: Mark in-kernel irqbalance as obsolete, set to N by default Auke Kok
2006-08-04  2:45 ` Andrew Morton
2006-08-04 14:25   ` Auke Kok
2006-08-04 14:36   ` Arjan van de Ven
     [not found] <6EJUl-4br-13@gated-at.bofh.it>
     [not found] ` <6FXVd-1Gl-11@gated-at.bofh.it>
     [not found]   ` <6G9jL-1Yg-41@gated-at.bofh.it>
2006-08-04 21:48     ` Bodo Eggert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).