All of lore.kernel.org
 help / color / mirror / Atom feed
* SMP and CPU1 not showing interrupts in /proc/interrupts
@ 2003-02-23  9:42 James Harper
  2003-02-23 10:21 ` Andrew Morton
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: James Harper @ 2003-02-23  9:42 UTC (permalink / raw)
  To: linux-kernel

somewhere between about 2.5.53 and 2.5.62 my /proc/interrupts has gone 
from an approximately even distribution of interrupts between CPU0 and 
CPU1 to grossly uneven:

           CPU0       CPU1       
  0:   13223321    2233217    IO-APIC-edge  timer
  1:      13442          0    IO-APIC-edge  i8042
  2:          0          0          XT-PIC  cascade
  3:     291874          0    IO-APIC-edge  serial
  8:          3          0    IO-APIC-edge  rtc
  9:          0          0    IO-APIC-edge  acpi
 14:      18932          0    IO-APIC-edge  ide0
 15:         14          0    IO-APIC-edge  ide1
 16:     190607          1   IO-APIC-level  eth0, nvidia
 17:       3214          0   IO-APIC-level  bttv0
 18:      14249          1   IO-APIC-level  ide2
 19:     121942          0   IO-APIC-level  uhci-hcd, wlan0
NMI:          0          0
LOC:   15458218   15458423
ERR:          0
MIS:          0

if i really hit the system hard then CPU1 will start accruing interrupts 
but in a mostly idle state CPU1 just sits on its bum and lets CPU0 
handle them all, with the exception of irq #0, for some reason.

any ideas?

thanks

James



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

* Re: SMP and CPU1 not showing interrupts in /proc/interrupts
  2003-02-23  9:42 SMP and CPU1 not showing interrupts in /proc/interrupts James Harper
@ 2003-02-23 10:21 ` Andrew Morton
  2003-02-23 10:52 ` dada1
  2003-02-23 13:52 ` Arjan van de Ven
  2 siblings, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2003-02-23 10:21 UTC (permalink / raw)
  To: James Harper; +Cc: linux-kernel

James Harper <james.harper@bigpond.com> wrote:
>
> somewhere between about 2.5.53 and 2.5.62 my /proc/interrupts has gone 
> from an approximately even distribution of interrupts between CPU0 and 
> CPU1 to grossly uneven:
> 
>            CPU0       CPU1       
>   0:   13223321    2233217    IO-APIC-edge  timer
>   1:      13442          0    IO-APIC-edge  i8042
>   2:          0          0          XT-PIC  cascade
>   3:     291874          0    IO-APIC-edge  serial
>   8:          3          0    IO-APIC-edge  rtc
>   9:          0          0    IO-APIC-edge  acpi
>  14:      18932          0    IO-APIC-edge  ide0
>  15:         14          0    IO-APIC-edge  ide1
>  16:     190607          1   IO-APIC-level  eth0, nvidia
>  17:       3214          0   IO-APIC-level  bttv0
>  18:      14249          1   IO-APIC-level  ide2
>  19:     121942          0   IO-APIC-level  uhci-hcd, wlan0
> NMI:          0          0
> LOC:   15458218   15458423
> ERR:          0
> MIS:          0
> 
> if i really hit the system hard then CPU1 will start accruing interrupts 
> but in a mostly idle state CPU1 just sits on its bum and lets CPU0 
> handle them all, with the exception of irq #0, for some reason.
> 

That is a deliberate part of the new interrupt balancing code.

If the interrupt rate is low, it is better to keep all the interrupt
processing code and data in the cache of a single CPU.

It is only if that CPU starts to run out of steam that it is worthwhile
taking the hit of getting other CPUs to service interrupts as well.

(I think.  At least, it sounds good and the benchmarks came out well).


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

* Re: SMP and CPU1 not showing interrupts in /proc/interrupts
  2003-02-23  9:42 SMP and CPU1 not showing interrupts in /proc/interrupts James Harper
  2003-02-23 10:21 ` Andrew Morton
@ 2003-02-23 10:52 ` dada1
  2003-02-23 13:52 ` Arjan van de Ven
  2 siblings, 0 replies; 4+ messages in thread
From: dada1 @ 2003-02-23 10:52 UTC (permalink / raw)
  To: James Harper, linux-kernel

I too had such interrupt distribution...

In my case, absolutely no interrupts was taken by CPU1, even the timer...
and I recall that timer interrupts should hit all the CPUS or strange things
can appear.

But, curiously, a

echo 3 >/proc/irq/0/smp_affinity

solved the problem for me (for IRQ 0 only of course)

I say curiously because the old smp_affinity value was 0xffffffff, so
masking the unused bits should have no effect.

Eric

> somewhere between about 2.5.53 and 2.5.62 my /proc/interrupts has gone
> from an approximately even distribution of interrupts between CPU0 and
> CPU1 to grossly uneven:
>
>            CPU0       CPU1
>   0:   13223321    2233217    IO-APIC-edge  timer
>   1:      13442          0    IO-APIC-edge  i8042
>   2:          0          0          XT-PIC  cascade
>   3:     291874          0    IO-APIC-edge  serial
>   8:          3          0    IO-APIC-edge  rtc
>   9:          0          0    IO-APIC-edge  acpi
>  14:      18932          0    IO-APIC-edge  ide0
>  15:         14          0    IO-APIC-edge  ide1
>  16:     190607          1   IO-APIC-level  eth0, nvidia
>  17:       3214          0   IO-APIC-level  bttv0
>  18:      14249          1   IO-APIC-level  ide2
>  19:     121942          0   IO-APIC-level  uhci-hcd, wlan0
> NMI:          0          0
> LOC:   15458218   15458423
> ERR:          0
> MIS:          0
>
> if i really hit the system hard then CPU1 will start accruing interrupts
> but in a mostly idle state CPU1 just sits on its bum and lets CPU0
> handle them all, with the exception of irq #0, for some reason.
>
> any ideas?
>
> thanks
>
> James
>



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

* Re: SMP and CPU1 not showing interrupts in /proc/interrupts
  2003-02-23  9:42 SMP and CPU1 not showing interrupts in /proc/interrupts James Harper
  2003-02-23 10:21 ` Andrew Morton
  2003-02-23 10:52 ` dada1
@ 2003-02-23 13:52 ` Arjan van de Ven
  2 siblings, 0 replies; 4+ messages in thread
From: Arjan van de Ven @ 2003-02-23 13:52 UTC (permalink / raw)
  To: James Harper; +Cc: linux-kernel

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

On Sun, 2003-02-23 at 10:42, James Harper wrote:
> somewhere between about 2.5.53 and 2.5.62 my /proc/interrupts has gone 
> from an approximately even distribution of interrupts between CPU0 and 
> CPU1 to grossly uneven:
> 
>            CPU0       CPU1       
>   0:   13223321    2233217    IO-APIC-edge  timer
>   1:      13442          0    IO-APIC-edge  i8042
>   2:          0          0          XT-PIC  cascade
>   3:     291874          0    IO-APIC-edge  serial
>   8:          3          0    IO-APIC-edge  rtc
>   9:          0          0    IO-APIC-edge  acpi
>  14:      18932          0    IO-APIC-edge  ide0
>  15:         14          0    IO-APIC-edge  ide1
>  16:     190607          1   IO-APIC-level  eth0, nvidia
>  17:       3214          0   IO-APIC-level  bttv0
>  18:      14249          1   IO-APIC-level  ide2
>  19:     121942          0   IO-APIC-level  uhci-hcd, wlan0
> NMI:          0          0
> LOC:   15458218   15458423
> ERR:          0
> MIS:          0
> 
> if i really hit the system hard then CPU1 will start accruing interrupts 
> but in a mostly idle state CPU1 just sits on its bum and lets CPU0 
> handle them all, with the exception of irq #0, for some reason.

could you try the irqbalanced daemon for interrupt balancing:

http://people.redhat.com/arjanv/irqbalance/irqbalance-0.05.tar.gz


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

end of thread, other threads:[~2003-02-23 14:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-23  9:42 SMP and CPU1 not showing interrupts in /proc/interrupts James Harper
2003-02-23 10:21 ` Andrew Morton
2003-02-23 10:52 ` dada1
2003-02-23 13:52 ` Arjan van de Ven

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.