Re: Question regarding ERR in /proc/interrupts.

From: Randy.Dunlap
Date: Wed Jan 12 2005 - 14:44:33 EST


Justin Piszcz wrote:
Is there anyway to log each ERR to a file or way to find out what caused each ERR?

For example, I know this is the cause of a few of them:
spurious 8259A interrupt: IRQ7.

But not all 20, is there any available option to do this?

Are you sure about that?

MOTD: what kernel version?

2.6.10 (and probably all) prints such message one time for each
"spurious" IRQ, sets a flag for that IRQ, and then doesn't
print such message for that IRQ any more (i.e., so that
log isn't spammed). Each distinct spurious IRQ should be
logged (one time). If you want more, you'll need to patch
a source file and rebuild the kernel (attached, for i8259
PIC, not for APIC, since that's what you seem to have).

$ cat /proc/interrupts
CPU0
0: 887759057 XT-PIC timer
1: 3138 XT-PIC i8042
2: 0 XT-PIC cascade
5: 5811 XT-PIC Crystal audio controller
9: 265081861 XT-PIC ide4, eth1, eth2
10: 9087912 XT-PIC ide6, ide7
11: 837707 XT-PIC ide2, ide3
12: 13854 XT-PIC i8042
14: 63373075 XT-PIC eth0
NMI: 0
ERR: 20

--
~Randy
linux-2610-bk13

Print all spurious IRQs. (!)

Signed-off-by: Randy Dunlap <rddunlap@xxxxxxxx>

diffstat:=
arch/i386/kernel/i8259.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

diff -Naurp ./arch/i386/kernel/i8259.c~irq_err ./arch/i386/kernel/i8259.c
--- ./arch/i386/kernel/i8259.c~irq_err 2004-12-24 13:35:28.000000000 -0800
+++ ./arch/i386/kernel/i8259.c 2005-01-12 11:28:44.233785256 -0800
@@ -225,7 +225,7 @@ spurious_8259A_irq:
* At this point we can be sure the IRQ is spurious,
* lets ACK and report it. [once per IRQ]
*/
- if (!(spurious_irq_mask & irqmask)) {
+ /* if (!(spurious_irq_mask & irqmask)) */ {
printk(KERN_DEBUG "spurious 8259A interrupt: IRQ%d.\n", irq);
spurious_irq_mask |= irqmask;
}