linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* RE: 2.6.1 and irq balancing
@ 2004-01-11 23:59 Nakajima, Jun
  2004-01-12  4:42 ` Bill Davidsen
  2004-01-13  6:50 ` Ethan Weinstein
  0 siblings, 2 replies; 18+ messages in thread
From: Nakajima, Jun @ 2004-01-11 23:59 UTC (permalink / raw)
  To: Ethan Weinstein, Ed Tomlinson; +Cc: linux-kernel, piggin, Kamble, Nitin A

> Admittedly, the machine's load was not high when I took this sample.
> However, creating a great deal of load does not change these
statistics
> at all.  Being that there are patches available for 2.4.x kernels to
fix
> this, I don't think this at all by design, but what do I know? =)

2.6 kernels don't need a patch to it as far as I understand. Are you
saying that with significant amount of load, you did not see any
distribution of interrupts? Today's threshold in the kernel is high
because we found moving around interrupts frequently rather hurt the
cache and thus lower the performance compared to "do nothing". Can you
try to create significant load with your network (eth0 and eh1) and see
what happens? 

Jun 

> -----Original Message-----
> From: linux-kernel-owner@vger.kernel.org [mailto:linux-kernel-
> owner@vger.kernel.org] On Behalf Of Ethan Weinstein
> Sent: Saturday, January 10, 2004 9:19 PM
> To: Ed Tomlinson
> Cc: linux-kernel@vger.kernel.org; piggin@cyberone.com.au
> Subject: Re: 2.6.1 and irq balancing
> 
> Ed Tomlinson wrote:
> > Hi,
> >
> > What is the load on the box when this is happening?  If its low
think
> > this is optimal (for cache reasons).
> >
> 
> Admittedly, the machine's load was not high when I took this sample.
> However, creating a great deal of load does not change these
statistics
> at all.  Being that there are patches available for 2.4.x kernels to
fix
> this, I don't think this at all by design, but what do I know? =)
> 
> 2.6.0 running on a non-HT SMP machine I have (old Compaq proliant
> 2xPentium2) does interrupt on all CPU's with "noirqbalance" bootparam.
> 
> Regarding the keyboard, I noticed something interesting
> 
> 2.6.1-rc1 shows the i8042 in /proc/interrupts:
> 
>    1:       1871          0          0          0    IO-APIC-edge
i8042
> 
> (keyboard still does not work, though..)
> 
> 2.6.1 final does not show this at all, and [kseriod] eats a constant
5%
>   CPU.  Something's awry =)
> 
> 
> -Ethan
> -
> To unsubscribe from this list: send the line "unsubscribe
linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 18+ messages in thread
* RE: 2.6.1 and irq balancing
@ 2004-01-13  8:09 Nakajima, Jun
  0 siblings, 0 replies; 18+ messages in thread
From: Nakajima, Jun @ 2004-01-13  8:09 UTC (permalink / raw)
  To: Nick Piggin, Ethan Weinstein; +Cc: Ed Tomlinson, linux-kernel, Kamble, Nitin A

> Aside from the obvious imbalance between physical CPUs:
> I think interrupts should be much more freely balanced between
siblings
> that share cache, otherwise process a running on CPU0 gets less time
than
> process b running on CPU1 because of the interrupt load.
>
That scheduling issue is true. Today we balance interrupt load on a
package (i.e. physical CPU) basis, and we don't care which logical
processors do the interrupt handling because it should not matter in
terms of performance. 

Jun

> -----Original Message-----
> From: Nick Piggin [mailto:piggin@cyberone.com.au]
> Sent: Monday, January 12, 2004 11:05 PM
> To: Ethan Weinstein
> Cc: Nakajima, Jun; Ed Tomlinson; linux-kernel@vger.kernel.org; Kamble,
> Nitin A
> Subject: Re: 2.6.1 and irq balancing
> 
> 
> 
> Ethan Weinstein wrote:
> 
> > Nakajima, Jun wrote:
> >
> >>> Admittedly, the machine's load was not high when I took this
sample.
> >>> However, creating a great deal of load does not change these
> >>> statistics at all.  Being that there are patches available for
2.4.x
> >>> kernels to fix this, I don't think this at all by design, but what
> >>> do I know? =)
> >>>
> >>
> >
> >> 2.6 kernels don't need a patch to it as far as I understand. Are
you
> >> saying that with significant amount of load, you did not see any
> >> distribution of interrupts? Today's threshold in the kernel is high
> >> because we found moving around interrupts frequently rather hurt
the
> >> cache and thus lower the performance compared to "do nothing". Can
you
> >> try to create significant load with your network (eth0 and eh1) and
see
> >> what happens?
> >> Jun
> >
> >
> > Here's the situation two days later, I created some brief periods of
> > high load on eth1 and I see we have some change:
> >
> >
> >            CPU0       CPU1       CPU2       CPU3
> >   0:  184932542          0    2592511          0    IO-APIC-edge
timer
> >   1:       1875          0          0          0    IO-APIC-edge
i8042
> >   2:          0          0          0          0          XT-PIC
> cascade
> >   3:    3046103          0          0          0    IO-APIC-edge
serial
> >   8:          2          0          0          0    IO-APIC-edge
rtc
> >   9:          0          0          0          0   IO-APIC-level
acpi
> >  14:         76          0          0          0    IO-APIC-edge
ide0
> >  16:    2978264          0          0          0   IO-APIC-level
> > sym53c8xx
> >  22:    7838940          0          0          0   IO-APIC-level
eth0
> >  48:     916078          0     125150          0   IO-APIC-level
> aic79xx
> >  49:    1099375          0          0          0   IO-APIC-level
> aic79xx
> >  54:   51484241        316   50560879        279   IO-APIC-level
eth1
> > NMI:          0          0          0          0
> > LOC:  187530735  187530988  187530981  187530986
> > ERR:          0
> > MIS:          0
> >
> 
> 
> Aside from the obvious imbalance between physical CPUs:
> I think interrupts should be much more freely balanced between
siblings
> that share cache, otherwise process a running on CPU0 gets less time
than
> process b running on CPU1 because of the interrupt load.
> 
> 
> >
> > My argument is (see below).  This is an old 2x pentium2 @400, also
> > running 2.6, an old Compaq Proliant to be exact.  This machine
> > obviously has no HT, so why the balanced load?
> 
> 
> IIRC the P2/3 APICs are set to a round robin delivery mode while the
P4
> ones are not. It is still not ideal though, while you have fairness,
you
> now
> have suboptimal performance.
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread
* RE: 2.6.1 and irq balancing
@ 2004-01-13  7:57 Nakajima, Jun
  0 siblings, 0 replies; 18+ messages in thread
From: Nakajima, Jun @ 2004-01-13  7:57 UTC (permalink / raw)
  To: Ethan Weinstein; +Cc: Ed Tomlinson, linux-kernel, piggin, Kamble, Nitin A

I don't see a major problem there. If you look at eth1, it has the
biggest load with order of difference. Interrupts from disk controllers
cannot be major unless you have a lot of disks (tens, hundreds) given a
time period.

>   16:    2978264          0          0          0   IO-APIC-level
> sym53c8xx
>   22:    7838940          0          0          0   IO-APIC-level
eth0
>   48:     916078          0     125150          0   IO-APIC-level
aic79xx
>   49:    1099375          0          0          0   IO-APIC-level
aic79xx
>   54:   51484241        316   50560879        279   IO-APIC-level
eth1

Timer is a bit tricky because it continuously generates interrupts 1000
per sec, and it looks higher as the results. But given a time period,
the timer interrupts should be nothing. 

>    0:  184932542          0    2592511          0    IO-APIC-edge
timer


>             CPU0       CPU1
>    0: 1066522197 1117196193    IO-APIC-edge  timer
>    1:         42         19    IO-APIC-edge  i8042
>    2:          0          0          XT-PIC  cascade
>    5:   23523428   23510845   IO-APIC-level  TLAN
>    8:          0          4    IO-APIC-edge  rtc
>    9:         15         15   IO-APIC-level  sym53c8xx
>   10:    6874323    6809042   IO-APIC-level  sym53c8xx
>   11:    7545802    7509034   IO-APIC-level  ida0
>   14:          8          2    IO-APIC-edge  ide0
> NMI:          0          0
> LOC: 2183867261 2183867237
> ERR:          0
> MIS:          0

The above is generated by the round-robin interrupt distribution
provided by the chipset. It's very easy to do this on P4P systems
(that's basically the initial Ingo's patch), but the performance tends
to be worse if you do that. In fact, we saw better results on PIII
systems if we used the one in the kernel, i.e. irqbalance, rather than
the one by the chipset (round-robin).

Jun

> -----Original Message-----
> From: Ethan Weinstein [mailto:lists@stinkfoot.org]
> Sent: Monday, January 12, 2004 10:50 PM
> To: Nakajima, Jun
> Cc: Ed Tomlinson; linux-kernel@vger.kernel.org;
piggin@cyberone.com.au;
> Kamble, Nitin A
> Subject: Re: 2.6.1 and irq balancing
> 
> Nakajima, Jun wrote:
> 
> >> Admittedly, the machine's load was not high when I took this
sample.
> >> However, creating a great deal of load does not change these
statistics
> >> at all.  Being that there are patches available for 2.4.x kernels
to
> >> fix this, I don't think this at all by design, but what do I know?
=)
> >>
> 
> > 2.6 kernels don't need a patch to it as far as I understand. Are you
> > saying that with significant amount of load, you did not see any
> > distribution of interrupts? Today's threshold in the kernel is high
> > because we found moving around interrupts frequently rather hurt the
> > cache and thus lower the performance compared to "do nothing". Can
you
> > try to create significant load with your network (eth0 and eh1) and
see
> > what happens?
> >
> > Jun
> 
> Here's the situation two days later, I created some brief periods of
> high load on eth1 and I see we have some change:
> 
> 
>             CPU0       CPU1       CPU2       CPU3
>    0:  184932542          0    2592511          0    IO-APIC-edge
timer
>    1:       1875          0          0          0    IO-APIC-edge
i8042
>    2:          0          0          0          0          XT-PIC
cascade
>    3:    3046103          0          0          0    IO-APIC-edge
serial
>    8:          2          0          0          0    IO-APIC-edge  rtc
>    9:          0          0          0          0   IO-APIC-level
acpi
>   14:         76          0          0          0    IO-APIC-edge
ide0
>   16:    2978264          0          0          0   IO-APIC-level
> sym53c8xx
>   22:    7838940          0          0          0   IO-APIC-level
eth0
>   48:     916078          0     125150          0   IO-APIC-level
aic79xx
>   49:    1099375          0          0          0   IO-APIC-level
aic79xx
>   54:   51484241        316   50560879        279   IO-APIC-level
eth1
> NMI:          0          0          0          0
> LOC:  187530735  187530988  187530981  187530986
> ERR:          0
> MIS:          0
> 
> 
> My argument is (see below).  This is an old 2x pentium2 @400, also
> running 2.6, an old Compaq Proliant to be exact.  This machine
obviously
> has no HT, so why the balanced load?
> 
> 
>             CPU0       CPU1
>    0: 1066522197 1117196193    IO-APIC-edge  timer
>    1:         42         19    IO-APIC-edge  i8042
>    2:          0          0          XT-PIC  cascade
>    5:   23523428   23510845   IO-APIC-level  TLAN
>    8:          0          4    IO-APIC-edge  rtc
>    9:         15         15   IO-APIC-level  sym53c8xx
>   10:    6874323    6809042   IO-APIC-level  sym53c8xx
>   11:    7545802    7509034   IO-APIC-level  ida0
>   14:          8          2    IO-APIC-edge  ide0
> NMI:          0          0
> LOC: 2183867261 2183867237
> ERR:          0
> MIS:          0
> 
> 
> 
> Ethan

^ permalink raw reply	[flat|nested] 18+ messages in thread
* 2.6.1 and irq balancing
@ 2004-01-10 23:14 Ethan Weinstein
  2004-01-11  2:39 ` Ed Tomlinson
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Ethan Weinstein @ 2004-01-10 23:14 UTC (permalink / raw)
  To: linux-kernel; +Cc: William Lee Irwin III

Greetings all,

I upgraded my server to 2.6.1, and I'm finding I'm saddled with only 
interrupting on CPU0 again. 2.6.0 does this as well. This is the 
Supermicro X5DPL-iGM-O (E7501 chipset), 2 Xeons@2.4ghz HT enabled. 
/proc/cpuinfo is normal as per HT, displaying 4 cpus.
2.4.2(3|4) exhibited this behaviour as well, until I applied patches 
from here: 
http://www.hardrock.org/kernel/2.4.23/irqbalance-2.4.23-jb.patch, et al.


            CPU0       CPU1       CPU2       CPU3
   0:    1572323          0          0          0    IO-APIC-edge  timer
   2:          0          0          0          0          XT-PIC  cascade
   3:      23520          0          0          0    IO-APIC-edge  serial
   8:          2          0          0          0    IO-APIC-edge  rtc
   9:          0          0          0          0   IO-APIC-level  acpi
  14:         10          0          0          0    IO-APIC-edge  ide0
  16:         30          0          0          0   IO-APIC-level  sym53c8xx
  22:       4162          0          0          0   IO-APIC-level  eth0
  48:       7798          0          0          0   IO-APIC-level  aic79xx
  49:       3385          0          0          0   IO-APIC-level  aic79xx
  54:      17062          0          0          0   IO-APIC-level  eth1
NMI:          0          0          0          0
LOC:    1572002    1572251    1572250    1572243
ERR:          0
MIS:          0


THey keyboard isn't working either, but we see the i8042..

serio: i8042 KBD port at 0x60,0x64 irq 1


-Ethan

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

end of thread, other threads:[~2004-01-15 11:44 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-01-11 23:59 2.6.1 and irq balancing Nakajima, Jun
2004-01-12  4:42 ` Bill Davidsen
2004-01-12 14:06   ` Zwane Mwaikambo
2004-01-12 16:10   ` Martin J. Bligh
2004-01-13  6:50 ` Ethan Weinstein
2004-01-13  7:05   ` Nick Piggin
  -- strict thread matches above, loose matches on Subject: below --
2004-01-13  8:09 Nakajima, Jun
2004-01-13  7:57 Nakajima, Jun
2004-01-10 23:14 Ethan Weinstein
2004-01-11  2:39 ` Ed Tomlinson
2004-01-11  3:38   ` Nick Piggin
2004-01-11  9:52     ` Arjan van de Ven
2004-01-11  5:19   ` Ethan Weinstein
2004-01-11  9:51 ` Arjan van de Ven
2004-01-11 16:50   ` Joe Korty
2004-01-11 18:19     ` Arjan van de Ven
2004-01-15 11:43     ` Pavel Machek
2004-01-11 13:14 ` Martin Schlemmer

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