From: Andi Kleen <andi@firstfloor.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <andi@firstfloor.org>,
x86@kernel.org, linux-kernel@vger.kernel.org,
jesse.brandeburg@intel.com
Subject: Re: [PATCH] Prevent nested interrupts when the IRQ stack is near overflowing v2
Date: Thu, 25 Mar 2010 01:36:52 +0100 [thread overview]
Message-ID: <20100325003652.GG20695@one.firstfloor.org> (raw)
In-Reply-To: <alpine.LFD.2.00.1003250001500.3147@localhost.localdomain>
On Thu, Mar 25, 2010 at 12:08:23AM +0100, Thomas Gleixner wrote:
> On Wed, 24 Mar 2010, Thomas Gleixner wrote:
>
> > On Wed, 24 Mar 2010, Andi Kleen wrote:
> >
> > > Prevent nested interrupts when the IRQ stack is near overflowing v2
> > >
> > > Interrupts can always nest when they don't run with IRQF_DISABLED.
> > >
> > > When a lot of interrupts hit the same vector on the same
> > > CPU nested interrupts can overflow the irq stack and cause hangs.
> That's utter nonsense. An interrupt storm on the same vector does not
> cause irq nesting. The irq code prevents reentering a handler and in
Sorry it's the same CPU, not the same vector. Yes the reference
to same vector was misleading.
"
Multiple vectors on a multi port NIC pointing to the same CPU,
all hitting the irq stack until it overflows.
"
> case of MSI-X it just disables the IRQ when it comes again while the
> first irq on that vector is still in progress. So the maximum nesting
> is two up to handle_edge_irq() where it disables the IRQ and returns
> right away.
Real maximum nesting is all IRQs running with interrupts on pointing
to the same CPU. Enough from multiple busy IRQ sources and you go boom.
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
next prev parent reply other threads:[~2010-03-25 0:36 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-24 19:02 [PATCH] Prevent nested interrupts when the IRQ stack is near overflowing v2 Andi Kleen
2010-03-24 20:42 ` Thomas Gleixner
2010-03-24 23:08 ` Thomas Gleixner
2010-03-25 0:36 ` Andi Kleen [this message]
2010-03-25 1:46 ` Thomas Gleixner
2010-03-25 9:37 ` Andi Kleen
2010-03-25 11:09 ` Thomas Gleixner
2010-03-25 12:11 ` Andi Kleen
2010-03-25 13:17 ` Thomas Gleixner
2010-03-25 13:32 ` Andi Kleen
2010-03-25 14:16 ` Thomas Gleixner
2010-03-25 15:38 ` Andi Kleen
2010-03-25 16:06 ` Alan Cox
2010-03-25 16:13 ` Linus Torvalds
2010-03-25 16:17 ` Linus Torvalds
2010-03-25 16:27 ` Ingo Molnar
2010-03-25 16:33 ` Ingo Molnar
2010-03-25 18:27 ` Andi Kleen
2010-03-26 4:55 ` Eric W. Biederman
2010-03-25 16:52 ` Thomas Gleixner
2010-03-25 17:47 ` Peter Zijlstra
2010-03-25 18:01 ` Linus Torvalds
2010-03-25 18:21 ` Peter Zijlstra
2010-03-25 18:23 ` Peter Zijlstra
2010-03-25 18:44 ` Andi Kleen
2010-03-25 19:01 ` Ingo Molnar
2010-03-25 18:29 ` Ingo Molnar
2010-03-25 19:10 ` Linus Torvalds
2010-03-25 19:42 ` David Miller
2010-03-25 20:40 ` Linus Torvalds
2010-03-26 3:33 ` David Miller
2010-03-25 20:51 ` Ingo Molnar
2010-03-25 20:53 ` Linus Torvalds
2010-03-26 6:10 ` Andi Kleen
2010-03-25 10:50 ` Alan Cox
2010-03-25 11:16 ` Thomas Gleixner
2010-03-25 11:59 ` Alan Cox
2010-03-25 12:00 ` Andi Kleen
2010-03-25 11:57 ` Andi Kleen
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=20100325003652.GG20695@one.firstfloor.org \
--to=andi@firstfloor.org \
--cc=jesse.brandeburg@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
/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.