RE: spurious 8259A interrupt

From: Richard B. Johnson
Date: Mon Mar 22 2004 - 17:12:38 EST


On Mon, 22 Mar 2004, Guennadi Liakhovetski wrote:

> On Mon, 22 Mar 2004, Maciej W. Rozycki wrote:
>
> > Do you really get "spurious 8259A interrupt" messages for the local APIC
> > timer??? They don't ever leave the unit bound to the processor -- it has
> > to be something else. What is your contents of /proc/interrupts?
>
> Ok, here's exactly, what I see:
> 1) during start-up 1 message
> spurious 8259A interrupt: IRQ7.
> 2) at run-time ERR: count increases - sometimes several per
> second, sometimes it remains constant for some time.
> 3) No more "spurious" messages
> 4) I saw definitely situations, when between 2 /proc/interrupts snapshots
> the sum of all (except the timer) interrupts was smaller, than the number
> of errors, e.g.
>
> CPU0 (2nd shot)
> 0: 36557 37638 +1081 XT-PIC timer
> 1: 59 65 +6 XT-PIC i8042
> 2: 0 0 XT-PIC cascade
> 5: 0 0 XT-PIC VIA686A
> 8: 3 3 XT-PIC rtc
> 9: 0 0 XT-PIC acpi, uhci_hcd, uhci_hcd
> 10: 0 0 XT-PIC eth0
> 12: 84 84 XT-PIC i8042
> 14: 1910 1918 +8 XT-PIC ide0
> 15: 1 1 XT-PIC ide1
> NMI: 18 18
> LOC: 36460 37541 +1081
> ERR: 36 57 +21
>

First, you are using the 8259A (XT-PIC). This means you have
IO-APIC turned off (or it doesn't exist).

> ide0 + i8042 (keyboard) = 14, whereas errors increased by 21. So, if you
> are right, than Alan's wrong (or my understanding of his statement), and
> those spurious interrupts occur not only after real ones, or, one real
> interrupt can produce several spurious ones.

Neither. They are not related. As previously stated, a spurious
interrupt occurs when the CPU INT line becomes active, but no
interrupt controller caused it to happen. It's just that simple.
There is no magic. Given that the CPU needs to have a vector
placed on the bus every time the INT line goes active, the
interrupt controller says; "What's a mother to do?". To placate
the CPU and terminate the INT/INTA cycle, the controller puts
its lowest-priority vector on the bus. The CPU will eventually
branch to the address specified for that vector. The code there
says; "I'm IRQ7, I'm not even hooked...This must be a spurious
interrupt..."

Again, it's a hardware problem. It can't be fixed in software.
Of course, you could get rid of the "!&@#)$^#$)!@^$" message
that's mucking everybody up. Then you could use defective hardware
just like Win$


>
> Thanks
> Guennadi
> ---
> Guennadi Liakhovetski


Cheers,
Dick Johnson
Penguin : Linux version 2.4.24 on an i686 machine (797.90 BogoMips).
Note 96.31% of all statistics are fiction.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/