Subject: Re: 2.6.23-rc2: WARNING: at kernel/irq/resend.c:70 check_irq_resend()

From: Jarek Poplawski <[email-masked]>
Date: Fri, 10 Aug 2007 11:12:31 +0200

On Fri, Aug 10, 2007 at 10:56:11AM +0200, Ingo Molnar wrote:
...
> this changes the picture completely and makes the IO-APIC/local-APIC hw 
> retrigger code/logic the main suspect. I think you right that it's quite 
> bogus to hw-retrigger level irqs, and that could be confusing the 
> IO-APIC (or the local APIC, or both).
> 
> and i think i see why my first sw-resend patch didnt do the trick:
> 
> > > -               if (!desc->chip || !desc->chip->retrigger ||
> > > -                                       !desc->chip->retrigger(irq)) {
> > > +               if (desc->handle_irq == handle_edge_irq) {
> > > +                       if (desc->chip->retrigger)
> > > +                               desc->chip->retrigger(irq);
> > > +                       return;
> > > +               }
> > >  #ifdef CONFIG_HARDIRQS_SW_RESEND
> 
> we used the hw-resend method unconditionally, right?

Right: unconditionally on a condition they are not edges...

But, since not resending at all seems to work so good in testing,
I thought, _SW_RESEND could be considered as an unnecessarily
complicated alternative.

Now, I'm a bit confused...

Jarek P.