lkml.org 
[lkml]   [2006]   [Jun]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: Problem with 2.6.17-mm2
From
Date
Andrew,

On Sun, 2006-06-25 at 03:49 -0700, Andrew Morton wrote:
> OK, thanks.
>
> > 1) A lot of "unexpected IRQ trap at vector X" for X=[09,07]
>
> hm, ack_bad_irq(). That isn't supposed to happen.
>
> Ingo, Thomas - it's possible that -mm2's genirq is affecting x86?

I did some tests by asserting spurious interrupts. genirq is just making
them visible, backing out the genirq changes makes them invisible again.

The reason is:

ack_bad_irq() in !genirq is only called, when no hw_irq_controller has
been installed. The interrupts in question have the PIC/APIC/IOAPIC
functions installed.

Now when a spurios interrupt comes in we do

desc->handler->ack(irq);

if (!desc->action)
goto out;
So in fact this just silently acks spurious interrupts which have an
hw_irq_controller assigned. If there is no action, then nothing has
called setup_irq/request_irq for this interrupt line and therefor it is
an spurious interrupt which should not happen.


genirq makes these visible and informs noisily about those events.

Looking at the debug output we see:

irq 7, desc: c037bc00, depth: 1, count: 0, unhandled: 0
->handle_irq(): c013d360, handle_bad_irq+0x0/0x270
->chip(): c037f980, 0xc037f980
->action(): 00000000
IRQ_DISABLED set
The interrupt is disabled and action is NULL.

tglx


-
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/

\
 
 \ /
  Last update: 2006-06-25 19:24    [from the cache]
©2003-2011 Jasper Spaans