[PATCH] Re: Bad network performance over 2Gbps

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Ingo Molnar <mingo@...>, Thomas Gleixner <tglx@...>, H. Peter Anvin <hpa@...>, Linux Kernel Mailing List <linux-kernel@...>
Cc: Anton Titov <a.titov@...>, Chris Snook <csnook@...>, H. Willstrand <h.willstrand@...>, <netdev@...>, Jesse Brandeburg <jesse.brandeburg@...>, Linus Torvalds <torvalds@...>, Andrew Morton <akpm@...>
Date: Thursday, April 17, 2008 - 1:37 pm

Anton Titov wrote:

yes, I really don't see this is such an amazing discovery - the in-kernel
irqbalance code is totally wrong for network interrupts (and probably for most
interrupts).

on your system with 6 network interrupts it blows chunks and it's not NAPI that is
the issue - NAPI will work just fine on it's own. By disabling NAPI and reverting
to the in-driver irq moderation code you've effectively put the in-kernel
irqbalance code to the sideline and this is what makes it work again.

It's not the right solution.

We keep seing this exact issue pop up everywhere - especially with e1000(e)
datacenter users - this code _has_ to go or be fixed. Since there is a perfectly
viable solution, I strongly suggest disabling it.

This is not the first time I've sent this patch out in some form...

Auke


---
[X86] IRQBALANCE: Mark as BROKEN and disable by default

The IRQBALANCE option causes interrupts to bounce all around on SMP systems
quickly burying the CPU in migration cost and cache misses. Mainly affected are
network interrupts and this results in one CPU pegged in softirqd completely.

Disable this option and provide documentation to a better solution (userspace
irqbalance daemon does overall the best job to begin with and only manual setting
of smp_affinity will beat it).

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

---

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 6c70fed..956aa22 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1026,13 +1026,17 @@ config EFI
   	platforms.

 config IRQBALANCE
-	def_bool y
+	def_bool n
 	prompt "Enable kernel irq balancing"
-	depends on X86_32 && SMP && X86_IO_APIC
+	depends on X86_32 && SMP && X86_IO_APIC && BROKEN
 	help
 	  The default yes will allow the kernel to do irq load balancing.
 	  Saying no will keep the kernel from doing irq load balancing.

+	  This option is known to cause performance issues on SMP
+	  systems. The preferred method is to use the userspace
+	  'irqbalance' daemon instead. See http://irqbalance.org/.
+
 config SECCOMP
 	def_bool y
 	prompt "Enable seccomp to safely compute untrusted bytecode"
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH] Re: Bad network performance over 2Gbps, Kok, Auke, (Thu Apr 17, 1:37 pm)
Re: [PATCH] Re: Bad network performance over 2Gbps, Bill Fink, (Tue Apr 22, 1:07 am)
Re: [PATCH] Re: Bad network performance over 2Gbps, Ingo Molnar, (Mon Apr 21, 11:28 am)
Re: [PATCH] Re: Bad network performance over 2Gbps, Kok, Auke, (Mon Apr 21, 12:58 pm)
Re: [PATCH] Re: Bad network performance over 2Gbps, Andi Kleen, (Mon Apr 21, 2:35 pm)
Re: [PATCH] Re: Bad network performance over 2Gbps, Pavel Machek, (Mon Apr 21, 9:19 am)
Re: [PATCH] Re: Bad network performance over 2Gbps, Kok, Auke, (Mon Apr 21, 12:38 pm)
Re: [PATCH] Re: Bad network performance over 2Gbps, Denys Fedoryshchenko, (Sun Apr 20, 8:08 am)