From: Timothy Miller <miller@techsource.com>
To: Jonathan Lundell <linux@lundell-bros.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: top stack (l)users for 2.5.69
Date: Thu, 08 May 2003 15:05:47 -0400 [thread overview]
Message-ID: <3EBAAA8B.4060001@techsource.com> (raw)
In-Reply-To: p0521060abae04b745ea6@[207.213.214.37]
Jonathan Lundell wrote:
>
>
> In particular, the interrupt stack is the kernel stack of the current
> task. This is (in part) what leads to stack overflows. If the current
> task is running in the kernel, using a significant hunk of its stack, an
> interrupt is limited to the balance of that stack. And if that interrupt
> triggers a soft irq that runs, say, a network stack, and that softirq
> handler in turn gets interrupted, we've got, effectively, three
> processes sharing the stack. And of course hard interrupts can be
> nested, so it's pretty damn difficult to specify a safe upper limit for
> stack usage.
This is the sort of things that would severely limit our ability to
shrink the kernel stack. While it's perhaps feasible to shrink kernel
stack usage for typical syscalls, exactly the situation you describe is
unpredictable and very difficult to avoid.
My suggestion would be that if we do manage to get typical stack usage
down to the point where we can go to a 4K stack, then interrupt handlers
would have to be rewritten to recognize whether or not the interrupt
arrived on a user process kernel stack and then move the context over to
the "interrupt stack". The overhead would be low enough that it's worth
doing so that we could reduce process kernel stack size. Whenever an
interrupt service routine is itself interrupted, the interrupt stack
check code would realize that it is already using the interrupt stack
and not move the context. Here, then, we would need only one single
interrupt stack which we would size for worst case; so if we made it 8
or 12K, that's 8 or 12K once for each CPU which is allowed to receive
interrupts, not once per process.
You like? :)
next prev parent reply other threads:[~2003-05-08 18:49 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-08 14:08 top stack (l)users for 2.5.69 Chuck Ebbert
2003-05-08 18:04 ` Jonathan Lundell
2003-05-08 19:05 ` Timothy Miller [this message]
2003-05-08 21:00 ` Jonathan Lundell
-- strict thread matches above, loose matches on Subject: below --
2003-05-07 19:38 Chuck Ebbert
2003-05-07 13:20 Jörn Engel
2003-05-07 13:45 ` Richard B. Johnson
2003-05-07 13:56 ` Jörn Engel
2003-05-07 14:16 ` Richard B. Johnson
2003-05-07 17:13 ` Jonathan Lundell
2003-05-07 17:40 ` Richard B. Johnson
2003-05-07 18:12 ` Roland Dreier
2003-05-07 18:28 ` Richard B. Johnson
2003-05-07 18:44 ` Timothy Miller
2003-05-07 18:46 ` Roland Dreier
2003-05-07 19:30 ` Richard B. Johnson
2003-05-07 19:42 ` Roland Dreier
2003-05-07 20:04 ` Richard B. Johnson
2003-05-07 20:23 ` Roland Dreier
2003-05-07 20:42 ` Timothy Miller
2003-05-08 9:06 ` Jörn Engel
2003-05-08 11:33 ` Richard B. Johnson
2003-05-08 12:00 ` Helge Hafting
2003-05-08 15:42 ` Timothy Miller
2003-05-09 8:57 ` Miles Bader
2003-05-09 16:50 ` Timothy Miller
2003-05-08 16:47 ` Davide Libenzi
2003-05-07 18:51 ` Davide Libenzi
2003-05-07 19:22 ` Richard B. Johnson
2003-05-07 19:31 ` Davide Libenzi
2003-05-07 19:39 ` Hua Zhong
2003-05-07 21:47 ` Martin J. Bligh
2003-05-08 10:29 ` David Howells
2003-05-07 17:55 ` Jörn Engel
2003-05-07 16:20 ` Martin J. Bligh
2003-05-07 19:01 ` Dave Hansen
2003-05-07 20:06 ` Jörn Engel
2003-05-07 20:14 ` Dave Hansen
2003-05-08 8:41 ` Jörn Engel
2003-05-08 16:51 ` Dave Hansen
2003-05-08 22:12 ` Jörn Engel
2003-05-07 21:30 ` Jesse Pollard
2003-05-07 21:54 ` Timothy Miller
2003-05-07 22:01 ` Jesse Pollard
2003-05-07 14:33 ` Torsten Landschoff
2003-05-07 14:47 ` William Lee Irwin III
2003-05-07 15:04 ` Torsten Landschoff
2003-05-07 16:01 ` William Lee Irwin III
2003-05-08 15:36 ` Ingo Oeser
2003-05-08 18:04 ` William Lee Irwin III
2003-05-07 15:23 ` Timothy Miller
2003-05-07 15:47 ` William Lee Irwin III
2003-05-07 16:49 ` Jörn Engel
2003-05-07 17:18 ` Davide Libenzi
2003-05-07 17:40 ` Jörn Engel
2003-05-07 18:35 ` Davide Libenzi
2003-05-07 19:45 ` Jörn Engel
2003-05-07 18:23 ` William Lee Irwin III
2003-05-07 17:38 ` William Lee Irwin III
2003-05-07 17:47 ` Jörn Engel
2003-05-07 14:49 ` Richard B. Johnson
2003-05-07 18:36 ` Linus Torvalds
2003-05-07 19:17 ` Jeff Garzik
2003-05-07 20:38 ` Randy.Dunlap
2003-05-07 21:27 ` Marcus Alanen
2003-05-07 21:27 ` Randy.Dunlap
2003-05-08 15:10 ` Ingo Oeser
2003-05-08 17:12 ` Randy.Dunlap
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=3EBAAA8B.4060001@techsource.com \
--to=miller@techsource.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@lundell-bros.com \
/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).