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 <redacted>
---
Kconfig | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
---
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.
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
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")