From: Peter Zijlstra <peterz@infradead.org>
To: mingo@redhat.com, hpa@zytor.com, acme@redhat.com,
linux-kernel@vger.kernel.org, andi@firstfloor.org,
alan@lxorguk.ukuu.org.uk, davem@davemloft.net, torvalds@osdl.org,
gregkh@suse.de, tglx@linutronix.de, mingo@elte.hu
Cc: linux-tip-commits@vger.kernel.org
Subject: Re: [tip:irq/core] genirq: Run irq handlers with interrupts disabled
Date: Thu, 15 Apr 2010 09:35:40 +0200 [thread overview]
Message-ID: <1271316940.32749.61.camel@laptop> (raw)
In-Reply-To: <tip-e58aa3d2d0cc01ad8d6f7f640a0670433f794922@git.kernel.org>
On Tue, 2010-04-13 at 19:33 +0000, tip-bot for Ingo Molnar wrote:
> Commit-ID: e58aa3d2d0cc01ad8d6f7f640a0670433f794922
> Gitweb: http://git.kernel.org/tip/e58aa3d2d0cc01ad8d6f7f640a0670433f794922
> Author: Ingo Molnar <mingo@elte.hu>
> AuthorDate: Fri, 26 Mar 2010 00:06:51 +0000
> Committer: Thomas Gleixner <tglx@linutronix.de>
> CommitDate: Tue, 13 Apr 2010 16:36:40 +0200
>
> genirq: Run irq handlers with interrupts disabled
>
> Running interrupt handlers with interrupts enabled can cause stack
> overflows. That has been observed with multiqueue NICs delivering all
> their interrupts to a single core. We might band aid that somehow by
> checking the interrupt stacks, but the real safe fix is to run the irq
> handlers with interrupts disabled.
>
> Drivers for whacky hardware still can reenable them in the handler
> itself, if the need arises. (They do already due to lockdep)
>
> The risk of doing this is rather low:
>
> - lockdep already enforces this
> - CONFIG_NOHZ has shaken out the drivers which relied on jiffies updates
> - time keeping is not longer sensitive to the timer interrupt being delayed
Clearly I don't mind this, but shouldn't we at least first convert the
known problematic drivers to an alternative strategy?
IDE-PIO, that one ancient NIC etc..
> ---
> kernel/irq/handle.c | 3 ---
> 1 files changed, 0 insertions(+), 3 deletions(-)
>
> diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
> index 76d5a67..27e5c69 100644
> --- a/kernel/irq/handle.c
> +++ b/kernel/irq/handle.c
> @@ -370,9 +370,6 @@ irqreturn_t handle_IRQ_event(unsigned int irq, struct irqaction *action)
> irqreturn_t ret, retval = IRQ_NONE;
> unsigned int status = 0;
>
> - if (!(action->flags & IRQF_DISABLED))
> - local_irq_enable_in_hardirq();
> -
> do {
> trace_irq_handler_entry(irq, action);
> ret = action->handler(irq, action->dev_id);
next prev parent reply other threads:[~2010-04-15 7:35 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-26 0:06 [patch 0/2] Run interrupt handlers always with interrupts disabled Thomas Gleixner
2010-03-26 0:06 ` [patch 1/2] genirq: Run irq handlers " Thomas Gleixner
2010-03-26 6:13 ` Andi Kleen
2010-03-26 13:05 ` Thomas Gleixner
2010-03-30 5:33 ` Andi Kleen
2010-03-31 11:16 ` Thomas Gleixner
2010-04-02 9:31 ` Pavel Machek
2010-04-02 20:42 ` Thomas Gleixner
2010-04-02 21:09 ` Pavel Machek
2010-04-02 21:31 ` Peter Zijlstra
2010-04-02 22:51 ` Thomas Gleixner
2010-04-03 4:45 ` Pavel Machek
2010-04-13 19:33 ` [tip:irq/core] " tip-bot for Ingo Molnar
2010-04-15 7:35 ` Peter Zijlstra [this message]
2010-05-25 20:32 ` [patch 1/2] " Venkatesh Pallipadi
2010-03-26 0:06 ` [patch 2/2] genirq: Remove IRQF_DISABLED from core code Thomas Gleixner
2010-03-26 6:20 ` Andi Kleen
2010-03-26 11:19 ` Thomas Gleixner
2010-04-13 19:34 ` [tip:irq/core] " tip-bot for Thomas Gleixner
2010-03-26 3:34 ` [patch 0/2] Run interrupt handlers always with interrupts disabled David Miller
2010-03-26 8:14 ` Russell King
2010-03-26 9:20 ` Ingo Molnar
2010-03-26 9:20 ` Ingo Molnar
2010-03-26 9:28 ` Peter Zijlstra
2010-03-26 12:02 ` Jamie Lokier
2010-03-26 9:59 ` Alan Cox
2010-03-26 10:08 ` Peter Zijlstra
2010-03-26 10:12 ` Andi Kleen
2010-03-26 10:53 ` Ingo Molnar
2010-03-26 12:00 ` Nicolas Pitre
2010-03-26 12:06 ` Jamie Lokier
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=1271316940.32749.61.camel@laptop \
--to=peterz@infradead.org \
--cc=acme@redhat.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andi@firstfloor.org \
--cc=davem@davemloft.net \
--cc=gregkh@suse.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=torvalds@osdl.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.