From: Ingo Molnar <mingo@elte.hu>
To: Jarek Poplawski <jarkao2@o2.pl>
Cc: Thomas Gleixner <tglx@linutronix.de>,
John Stoffel <john@stoffel.org>,
linux-kernel@vger.kernel.org, shemminger@linux-foundation.org,
vignaud@xandmail.fr, marcin.slusarz@gmail.com,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk, linux-net@vger.kernel.org,
netdev@vger.kernel.org
Subject: Re: 2.6.23-rc2: WARNING: at kernel/irq/resend.c:70 check_irq_resend()
Date: Fri, 10 Aug 2007 11:33:53 +0200 [thread overview]
Message-ID: <20070810093353.GA19777@elte.hu> (raw)
In-Reply-To: <20070810091231.GH1764@ff.dom.local>
* Jarek Poplawski <jarkao2@o2.pl> wrote:
> > > > + }
> > > > #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...
the idea is multi-pronged:
- Primarily, we want to fix the regression. 2.6.20 worked, 2.6.21
didnt, that has to be fixed, no matter what - end of story. But we've
got a wide selection of patches for that purpose now, so what matters
at this point is the secondary question:
- we want to know _why exactly_ the hang happens. We now have a pretty
good theory: hw-resend hangs the IO-APIC. (there is a delicate dance
between local APICs and IO-APICs for level-triggered irqs, and if we
interject via hw-resending via the local APIC, existing races, hw
bugs or weaknesses in our hw-resend implementation might be exposed)
and even though we now have a wide selection of patches we really want
to get to the bottom of the problem so that we can fix the bug that got
exposed: apparently hw resend doesnt always work with level-triggered
irqs.
Note that the hw-resend sequence can trigger _even without our original
patch that triggered the regression_, it's just much less likely to
happen, so this is a pre-existing IO-APIC/APIC code bug that could
trigger anytime, and which we want to see fixed.
To confirm this theory - does the debug-patch below fix the hang? If it
fixes the hang then the theory is confirmed and then the right solution
is to retrigger an IRQ for level-triggered irqs with the proper
trigger-type set.
Ingo
------------------>
Not-Signed-off-by: Ingo Molnar <mingo@elte.hu>
Index: linux/arch/i386/kernel/io_apic.c
===================================================================
--- linux.orig/arch/i386/kernel/io_apic.c
+++ linux/arch/i386/kernel/io_apic.c
@@ -735,7 +735,8 @@ void fastcall send_IPI_self(int vector)
* Wait for idle.
*/
apic_wait_icr_idle();
- cfg = APIC_DM_FIXED | APIC_DEST_SELF | vector | APIC_DEST_LOGICAL;
+ cfg = APIC_DM_FIXED | APIC_DEST_SELF | vector | APIC_DEST_LOGICAL |
+ APIC_INT_LEVELTRIG;
/*
* Send the IPI. The write to APIC_ICR fires this off.
*/
next prev parent reply other threads:[~2007-08-10 9:34 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-09 15:03 2.6.23-rc2: WARNING: at kernel/irq/resend.c:70 check_irq_resend() John Stoffel
2007-08-09 15:54 ` Jarek Poplawski
2007-08-10 8:05 ` Thomas Gleixner
2007-08-10 8:23 ` Jarek Poplawski
2007-08-10 8:30 ` Ingo Molnar
2007-08-10 8:49 ` Jarek Poplawski
2007-08-10 8:56 ` Ingo Molnar
2007-08-10 9:12 ` Jarek Poplawski
2007-08-10 9:33 ` Ingo Molnar [this message]
2007-08-10 10:05 ` Jarek Poplawski
2007-08-10 10:16 ` Ingo Molnar
2007-08-13 7:13 ` Marcin Ślusarz
2007-08-10 10:13 ` Stephen Hemminger
-- strict thread matches above, loose matches on Subject: below --
2007-08-10 12:27 Jean-Baptiste Vignaud
2007-08-10 11:35 Jean-Baptiste Vignaud
2007-08-08 18:09 2.6.23-rc2: WARNING " Indan Zupancic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070810093353.GA19777@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=jarkao2@o2.pl \
--cc=john@stoffel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-net@vger.kernel.org \
--cc=marcin.slusarz@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=shemminger@linux-foundation.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=vignaud@xandmail.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.