From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>,
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: Fri, 20 Sep 2013 11:53:49 +1000 [thread overview]
Message-ID: <1379642029.6148.89.camel@pasglop> (raw)
In-Reply-To: <CA+55aFyXf370Ds6FH5wPPycZLSPD5qiP7rjWqxwDetfHfKjg1w@mail.gmail.com>
On Thu, 2013-09-19 at 19:02 -0500, Linus Torvalds wrote:
> On Thu, Sep 19, 2013 at 2:51 PM, Frederic Weisbecker <fweisbec@gmail.com> wrote:
> >
> > It fixes stacks overruns reported by Benjamin Herrenschmidt:
> > http://lkml.kernel.org/r/1378330796.4321.50.camel%40pasglop
>
> So I don't really dislike this patch-series, but isn't "irq_exit()"
> (which calls the new softirq_on_stack()) already running in the
> context of the irq stack?
Not on powerpc and afaik not on i386 from my quick look at
handle_irq() in irq_32.c ... maybe x86_64 calls do_IRQ already
on the irq stack ?
Also irq and softirq are (somewhat on purpose) different stacks
> And it's run at the very end of the irq
> processing, so the irq stack should be empty too at that point.
> So switching to *another* empty stack sounds really sad. No? Taking
> more cache misses etc, instead of using the already empty - but
> cache-hot - stack that we already have.
>
> I'm assuming that the problem is that since we're already on the irq
> stack, if *another* irq comes in, now that *other* irq doesn't get yet
> another irq stack page. And I'm wondering whether we shouldn't just
> fix that (hopefully unlikely) case instead? So instead of having a
> softirq stack, we'd have just an extra irq stack for the case where
> the original irq stack is already in use.
Well actually in the crash we observed we aren't already in the irq
stack.
We could try to change powerpc to switch stack before calling do_IRQ but
that would be fairly invasive for various reasons (a significant change
of our assembly entry code) unless we do it as a kind of wrapper around
do_IRQ (and thus keep the actual interrupt frame on the main kernel
stack).
I'll look into hacking something up along those lines, it might be the
best approach for a RHEL7 fix anyway.
Ben.
> Hmm?
>
> Linus
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
next prev parent reply other threads:[~2013-09-20 1:56 UTC|newest]
Thread overview: 51+ 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 [this message]
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
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 7:56 ` Stephen Rothwell
2013-09-23 10:13 ` Benjamin Herrenschmidt
2013-09-23 16:47 ` Linus Torvalds
2013-09-23 20:51 ` Benjamin Herrenschmidt
2013-09-24 5:42 ` [PATCH v2] " 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=1379642029.6148.89.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).