archive mirror
 help / color / mirror / Atom feed
From: "Jason A. Donenfeld" <>
To: James Hogan <>,
	Greg Kroah-Hartman <>
Cc: Ralf Baechle <>,
	Matt Redfearn <>,, Thomas Gleixner <>,
	Paolo Bonzini <>,
	Marcin Nowakowski <>,
	Chris Metcalf <>,
	Petr Mladek <>,
	LKML <>,
	Adam Buchbinder <>,
	Paul Burton <>, Jiri Slaby <>,
	"Maciej W. Rozycki" <>,
	Aaron Tomlin <>,
	Andrew Morton <>
Subject: Re: [PATCH v3 0/5] MIPS: Add per-cpu IRQ stack
Date: Sun, 15 Jan 2017 14:39:49 +0100	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>

Hi James,

On Fri, Jan 13, 2017 at 10:49 AM, James Hogan <> wrote:
> Its quite a significant change/feature, especially in terms of potential
> for further breakage. I don't think its really stable material to be
> honest.  It sounds bad if the kernel stack requirement can be made
> arbitrarily large by stacking too many drivers.

Indeed I believe this is the case. If, say, a kthread is already using
a bit of stack, and then a softirq chain of stacked virtual network
drivers is called, the stack can be busted.

> Is there a simpler fix/workaround for the issue that would satisfy
> stable kernel users until they can upgrade to a kernel with irqstacks?

The simplest solution is probably just not stacking tons of network
drivers. For my own out-of-tree curve25519-donna code that's in
OpenWRT and uses a fair amount of stack, I just kmalloc on MIPS but
not on x86, so in terms of my own stuff there's already a workaround
in place. But this still doesn't solve things for users who have some
interesting networking requirements and stack a few drivers.

Unfortunately, most folks are only testing stuff on ARM and x86, which
already have the separate IRQ stacks, so they aren't hitting crashes.

So, in the end, I'm not quite sure. On the one hand, this fixes an
actual problem and it'd be nice to see stable kernels have the fix. On
the other hand, this is a rather big change. I don't know how to
assess it, but I've copied Greg on this email, who certainly has
better judgement about this than me.


  reply	other threads:[~2017-01-15 13:39 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-19 14:20 [PATCH v3 0/5] MIPS: Add per-cpu IRQ stack Matt Redfearn
2016-12-19 14:20 ` [PATCH v3 1/5] MIPS: Introduce irq_stack Matt Redfearn
2016-12-19 14:20 ` [PATCH v3 2/5] MIPS: Stack unwinding while on IRQ stack Matt Redfearn
2016-12-19 14:20 ` [PATCH v3 3/5] MIPS: Only change $28 to thread_info if coming from user mode Matt Redfearn
2016-12-21 12:13   ` Maciej W. Rozycki
2016-12-19 14:20 ` [PATCH v3 4/5] MIPS: Switch to the irq_stack in interrupts Matt Redfearn
2016-12-19 14:21 ` [PATCH v3 5/5] MIPS: Select HAVE_IRQ_EXIT_ON_IRQ_STACK Matt Redfearn
2016-12-21  1:18 ` [PATCH v3 0/5] MIPS: Add per-cpu IRQ stack Jason A. Donenfeld
2017-01-10 23:32   ` Jason A. Donenfeld
2017-01-11  1:20     ` Ralf Baechle
2017-01-11 23:32       ` Jason A. Donenfeld
2017-01-13  9:49         ` James Hogan
2017-01-15 13:39           ` Jason A. Donenfeld [this message]
2017-01-15 13:48             ` Greg Kroah-Hartman
2017-01-15 14:11               ` Jason A. Donenfeld
2017-01-15 14:15                 ` Jason A. Donenfeld
2017-01-15 14:30                   ` Greg Kroah-Hartman
2017-01-15 18:07                     ` Jason A. Donenfeld

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:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='' \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \

* 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).