From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
Thomas Gleixner <tglx@linutronix.de>,
LKML <linux-kernel@vger.kernel.org>,
Paul Mackerras <paulus@au1.ibm.com>,
Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
"H. Peter Anvin" <hpa@zytor.com>,
James Hogan <james.hogan@imgtec.com>,
"James E.J. Bottomley" <jejb@parisc-linux.org>,
Helge Deller <deller@gmx.de>,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
"David S. Miller" <davem@davemloft.net>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [RFC GIT PULL] softirq: Consolidation and stack overrun fix
Date: Sun, 22 Sep 2013 07:45:01 +1000 [thread overview]
Message-ID: <1379799901.24090.6.camel@pasglop> (raw)
In-Reply-To: <CAFTL4hzucS5nJbCrArPv9zfY=QpyUESMK2Th0tKFHVCjDP7-eA@mail.gmail.com>
On Sat, 2013-09-21 at 13:58 -0500, Frederic Weisbecker wrote:
> Now certainly what needs to be fixed then is archs that don't have
> __ARCH_IRQ_EXIT_IRQS_DISABLED
> or archs that have any other significant opportunity to nest interrupt.
Interesting. I notice we don't define it on powerpc but we don't enable
IRQs in do_IRQ either... our path is very similar to x86 in this regard,
the only thing that can cause them to become enabled would be if a
driver interrupt handler did local_irq_enable().
It used to be fairly common for drivers to do spin_unlock_irq() which
would unconditionally re-enable. Did we add WARNs or lockdep logic to
catch these nowadays ?
> > - process context doing local_bh_enable, and a bh became pending
> > while it was disabled. See above: this needs a stack switch. Which
> > stack to use is open, again assuming that a hardirq coming in will
> > switch to yet another stack.
>
> Right. Now if we do like Thomas suggested, we can have a common irq
> stack that is big enough for hard and softirqs. After all there should
> never be more than two or three nesting irq contexts:
> hardirq->softirq->hardirq, softirq->hardirq, ...
>
> At least if we put aside the unsane archs that can nest irqs somehow.
I really don't like the "larger" irq stack ... probably because I can't
make it work easily :-) See my previous comment about how we get to
thread_info on ppc.
What I *can* do that would help I suppose would be to switch to the irq
stack before irq_enter/exit which would at least mean that softirq would
run from the top of the irq stack which is better than the current
situation.
I'm fact I'll whip up a quick fix see if that might be enough of a band
aid for RHEL7.
Cheers,
Ben.
next prev parent reply other threads:[~2013-09-21 21:47 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-19 19:51 [RFC GIT PULL] softirq: Consolidation and stack overrun fix Frederic Weisbecker
2013-09-19 19:51 ` [PATCH 1/3] irq: Consolidate do_softirq() arch overriden implementations Frederic Weisbecker
2013-09-19 19:51 ` [PATCH 2/3] irq: Execute softirq on its own stack on irq exit Frederic Weisbecker
2013-09-19 19:51 ` [PATCH 3/3] irq: Comment on the use of inline stack for ksoftirqd Frederic Weisbecker
2013-09-20 0:02 ` [RFC GIT PULL] softirq: Consolidation and stack overrun fix Linus Torvalds
2013-09-20 1:53 ` Benjamin Herrenschmidt
2013-09-20 11:03 ` Thomas Gleixner
2013-09-20 11:11 ` Peter Zijlstra
2013-09-21 0:55 ` Benjamin Herrenschmidt
2013-09-20 16:26 ` Frederic Weisbecker
2013-09-20 17:30 ` Thomas Gleixner
2013-09-20 18:37 ` Frederic Weisbecker
2013-09-20 22:14 ` Linus Torvalds
2013-09-21 7:47 ` Ingo Molnar
2013-09-21 18:58 ` Frederic Weisbecker
2013-09-21 21:45 ` Benjamin Herrenschmidt [this message]
2013-09-21 23:27 ` Frederic Weisbecker
2013-09-22 2:01 ` H. Peter Anvin
2013-09-22 4:39 ` Benjamin Herrenschmidt
2013-09-22 4:41 ` Benjamin Herrenschmidt
2013-09-22 16:24 ` Peter Zijlstra
2013-09-22 17:47 ` H. Peter Anvin
2013-09-22 22:00 ` Benjamin Herrenschmidt
2013-09-22 21:56 ` Benjamin Herrenschmidt
2013-09-22 22:22 ` Linus Torvalds
2013-09-22 22:38 ` Benjamin Herrenschmidt
2013-09-23 4:35 ` [PATCH] powerpc/irq: Run softirqs off the top of the irq stack Benjamin Herrenschmidt
2013-09-23 4:35 ` Benjamin Herrenschmidt
2013-09-23 7:56 ` Stephen Rothwell
2013-09-23 7:56 ` Stephen Rothwell
2013-09-23 10:13 ` Benjamin Herrenschmidt
2013-09-23 10:13 ` Benjamin Herrenschmidt
2013-09-23 16:47 ` Linus Torvalds
2013-09-23 16:47 ` Linus Torvalds
2013-09-23 20:51 ` Benjamin Herrenschmidt
2013-09-23 20:51 ` Benjamin Herrenschmidt
2013-09-24 5:42 ` [PATCH v2] " Benjamin Herrenschmidt
2013-09-24 5:42 ` Benjamin Herrenschmidt
2013-09-23 17:59 ` [RFC GIT PULL] softirq: Consolidation and stack overrun fix Chris Metcalf
2013-09-23 20:57 ` Benjamin Herrenschmidt
2013-09-24 19:27 ` Chris Metcalf
2013-09-24 20:58 ` Benjamin Herrenschmidt
2013-09-24 0:10 ` Benjamin Herrenschmidt
2013-09-24 1:19 ` Linus Torvalds
2013-09-24 1:52 ` Benjamin Herrenschmidt
2013-09-24 8:04 ` Peter Zijlstra
2013-09-24 8:16 ` Benjamin Herrenschmidt
2013-09-24 8:21 ` Peter Zijlstra
2013-09-24 9:31 ` Benjamin Herrenschmidt
2013-09-23 4:40 ` Benjamin Herrenschmidt
2013-09-23 5:01 ` David Miller
2013-09-24 2:44 ` Frederic Weisbecker
2013-09-24 4:42 ` Benjamin Herrenschmidt
2013-09-24 13:56 ` Frederic Weisbecker
2013-09-24 20:55 ` Benjamin Herrenschmidt
2013-09-25 8:46 ` Frederic Weisbecker
2013-09-21 0:52 ` Benjamin Herrenschmidt
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=1379799901.24090.6.camel@pasglop \
--to=benh@kernel.crashing.org \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=deller@gmx.de \
--cc=fweisbec@gmail.com \
--cc=heiko.carstens@de.ibm.com \
--cc=hpa@zytor.com \
--cc=james.hogan@imgtec.com \
--cc=jejb@parisc-linux.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=paulus@au1.ibm.com \
--cc=peterz@infradead.org \
--cc=schwidefsky@de.ibm.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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.