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