From: Rene Herman <rene.herman@gmail.com>
To: Matt Mackall <mpm@selenic.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
Jesper Juhl <jesper.juhl@gmail.com>,
Ray Lee <ray-lk@madrabbit.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
William Lee Irwin III <wli@holomorphy.com>,
David Chinner <dgc@sgi.com>
Subject: Re: [PATCH][RFC] 4K stacks default, not a debug thing any more...?
Date: Sun, 15 Jul 2007 00:19:15 +0200 [thread overview]
Message-ID: <46994BE3.7010608@gmail.com> (raw)
In-Reply-To: <20070714191737.GA11166@waste.org>
On 07/14/2007 09:17 PM, Matt Mackall wrote:
> On Fri, Jul 13, 2007 at 03:20:54PM +0200, Rene Herman wrote:
>> As far as I'm aware, the actual reason for 4K stacks is that after the
>> system has been up and running for some time getting "1 physically
>> contiguous pages" becomes significantly easier than 2 which wouldn't be
>> arbitrary.
>
> If there are exactly two free pages in the system, the odds of them
> being buddies (ie adjacent AND properly aligned) is quite small. The
> available page pool has to grow quite a bit before the availability of
> order-1 page pairs approaches 100%.
>
> So if we fail to allocate an 8k stack when we could have allocated a
> 4k stack, we're almost certainly failing significantly prematurely.
Quite. Ofcourse, saying "our stacks are 1 page" would be the by far easiest
solution to that. Personally, I've been running with 4K stacks exclusively
on a variety of machines for quite some time now, but I can't say I'm all
too adventurous with respect to filesystems (especially) so I'm not sure how
many problems remain with 4K stacks. I did recently see Andrew Morton say
that problems _do_ still exist. If it's just XFS -- well, heck...
Moreover though, rather than 4K, the issue is "single page" stacks meaning a
larger (soft-) pagesize would seem to fix things nicely. I've been reading
about that on this list off and on for some time -- no idea where that
stands though.
> As I've pointed out before, it's fairly easy to make our stack
> growable with a trampoline in the troublesome paths. Something like:
>
> int growstack(int headroom, int func, void *data)
> {
> void *new_stack;
> int ret;
>
> if (likely(available_stack() > headroom))
> return func(data);
>
> #ifdef CONFIG_GROWSTACK_STATS
> /* gather statistics about stack-heavy paths */
> #endif
> /* warn/abort if we're recursing too deeply */
>
> new_stack = get_free_page();
> switch_to_new_stack(new_stack);
> ret = func(data);
> cleanup_stack(new_stack);
> return ret;
> }
This would also need something to tell func() where its current_thread_info
is now at. Which might not be much of a problem. Can't think of much else
either but it's the kind of thing you'd _like_ to be a problem just to have
an excuse to shoot down an icky notion like that...
Would you intend this just as a "make this path work until we fix it
properly" kind of thing?
Rene.
next prev parent reply other threads:[~2007-07-14 22:20 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-11 17:16 [PATCH][RFC] 4K stacks default, not a debug thing any more...? Jesper Juhl
2007-07-11 17:54 ` Zan Lynx
2007-07-11 20:05 ` Daniel Phillips
2007-07-11 22:09 ` Neil Brown
2007-07-12 3:15 ` Daniel Phillips
2007-07-12 4:16 ` David Chinner
2007-07-12 4:59 ` Ray Lee
2007-07-12 20:24 ` Jesper Juhl
2007-07-13 0:34 ` Jeremy Fitzhardinge
2007-07-13 2:25 ` Jesper Juhl
2007-07-13 4:14 ` Jeremy Fitzhardinge
2007-07-13 9:19 ` Jan Engelhardt
2007-07-13 13:20 ` Rene Herman
2007-07-14 19:17 ` Matt Mackall
2007-07-14 22:19 ` Rene Herman [this message]
2007-07-16 23:38 ` Matt Mackall
2007-07-17 13:46 ` Rene Herman
2007-07-18 17:19 ` Phillip Susi
2007-07-18 17:32 ` Rene Herman
2007-07-18 17:32 ` Alan Cox
2007-07-18 17:33 ` Phillip Susi
2007-07-14 19:42 ` Matt Mackall
2007-07-12 6:08 ` Jeremy Fitzhardinge
2007-07-12 6:37 ` David Chinner
[not found] <8FO1e-2jW-35@gated-at.bofh.it>
[not found] ` <8FYWD-2eS-7@gated-at.bofh.it>
[not found] ` <8GdsH-8dc-13@gated-at.bofh.it>
[not found] ` <8Ghmx-60z-17@gated-at.bofh.it>
[not found] ` <8Gj55-hJ-5@gated-at.bofh.it>
[not found] ` <8GkNo-2Vb-1@gated-at.bofh.it>
[not found] ` <8GtnN-7TG-23@gated-at.bofh.it>
[not found] ` <8GVjY-PL-25@gated-at.bofh.it>
2007-07-15 17:17 ` Bodo Eggert
2007-07-15 17:35 ` Arjan van de Ven
2007-07-15 18:32 ` Måns Rullgård
2007-07-15 17:46 ` Rene Herman
2007-07-16 13:43 ` Bodo Eggert
2007-07-16 22:28 ` Rene Herman
2007-07-16 22:37 ` Ray Lee
2007-07-16 22:54 ` Alan Cox
2007-07-16 22:53 ` Ray Lee
2007-07-16 23:05 ` Rene Herman
2007-07-16 23:15 ` Ray Lee
2007-07-18 0:14 ` Alan Cox
2007-07-18 6:39 ` Ray Lee
2007-07-17 17:01 ` William Lee Irwin III
2007-07-17 23:39 ` Jesper Juhl
2007-07-18 0:22 ` Rene Herman
2007-07-16 22:54 ` Jesper Juhl
2007-07-16 23:01 ` Rene Herman
2007-07-16 23:42 ` Bodo Eggert
2007-07-16 23:51 ` Jesper Juhl
2007-07-19 19:34 ` Denis Vlasenko
2007-07-19 20:04 ` Bodo Eggert
2007-07-16 22:55 ` Rene Herman
2007-07-16 23:07 ` Matt Mackall
2007-07-16 23:12 ` Rene Herman
2007-07-16 23:27 ` Matt Mackall
2007-07-16 23:32 ` Rene Herman
2007-07-18 2:38 ` Rene Herman
2007-07-18 16:54 ` Matt Mackall
2007-07-18 17:17 ` Rene Herman
2007-07-19 0:15 ` Andrea Arcangeli
2007-07-19 0:39 ` Alan Cox
2007-07-19 1:33 ` Andrea Arcangeli
2007-07-19 1:37 ` Matt Mackall
2007-07-19 1:56 ` Rene Herman
2007-07-19 11:24 ` Andrea Arcangeli
2007-07-19 11:44 ` Alan Cox
2007-07-27 13:02 ` Eric Sandeen
2007-07-27 17:38 ` Alan Cox
2007-07-27 18:31 ` Satyam Sharma
2007-08-01 3:53 ` Eric Sandeen
2007-08-01 8:11 ` Dan Merillat
2007-08-01 10:04 ` Neil Brown
2007-08-10 4:51 ` Dan Merillat
2007-08-10 4:59 ` Neil Brown
2007-08-01 13:33 ` Andrea Arcangeli
2007-08-01 15:44 ` Alan Cox
2007-08-10 1:03 ` Dan Merillat
2007-07-19 9:23 ` Alan Cox
2007-07-19 10:52 ` Andrea Arcangeli
2007-07-27 13:03 ` Eric Sandeen
2007-07-27 17:18 ` Krzysztof Halasa
2007-07-19 0:41 ` Matt Mackall
2007-07-19 0:48 ` Rene Herman
2007-07-19 1:28 ` Matt Mackall
2007-07-16 23:13 ` Ray Lee
2007-07-16 23:22 ` Rene Herman
2007-07-16 23:35 ` Jesper Juhl
2007-07-16 23:40 ` Ray Lee
2007-07-17 0:57 ` Rene Herman
2007-07-17 16:14 ` Shawn Bohrer
2007-07-17 16:52 ` Rene Herman
2007-07-17 17:45 ` Zan Lynx
2007-07-18 0:16 ` Alan Cox
2007-07-16 23:45 ` Bodo Eggert
2007-07-17 0:28 ` Rene Herman
2007-07-17 10:06 ` Bodo Eggert
2007-07-17 14:38 ` Rene Herman
2007-07-17 23:19 ` Bodo Eggert
2007-07-17 23:29 ` Arjan van de Ven
2007-07-19 17:20 ` Bodo Eggert
2007-07-17 23:57 ` Rene Herman
2007-07-19 17:05 ` Bodo Eggert
2007-07-16 23:26 ` utz lehmann
2007-07-16 23:39 ` Måns Rullgård
2007-07-17 1:00 ` Rene Herman
2007-07-17 14:45 ` John Stoffel
2007-07-17 23:46 ` utz lehmann
[not found] <8HfVl-71J-15@gated-at.bofh.it>
[not found] ` <8Hgoq-7Cd-21@gated-at.bofh.it>
[not found] ` <8Hz7K-38K-37@gated-at.bofh.it>
[not found] ` <8HHeZ-7R1-21@gated-at.bofh.it>
[not found] ` <8HHoA-835-21@gated-at.bofh.it>
[not found] ` <8HHI2-8r2-27@gated-at.bofh.it>
[not found] ` <8HI1k-Dn-25@gated-at.bofh.it>
[not found] ` <8HIb2-PD-11@gated-at.bofh.it>
[not found] ` <8HIun-1e7-33@gated-at.bofh.it>
[not found] ` <8HJA3-2Nq-9@gated-at.bofh.it>
[not found] ` <8HXWo-8t2-17@gated-at.bofh.it>
[not found] ` <8HYzd-PZ-25@gated-at.bofh.it>
[not found] ` <8HZlt-27o-7@gated-at.bofh.it>
2007-07-18 8:37 ` Nick Craig-Wood
[not found] ` <8HHRD-rK-19@gated-at.bofh.it>
[not found] ` <8HI1j-Dn-21@gated-at.bofh.it>
[not found] ` <8HIb2-PD-5@gated-at.bofh.it>
[not found] ` <8IrUr-4SZ-9@gated-at.bofh.it>
[not found] ` <8IsdO-5g4-7@gated-at.bofh.it>
[not found] ` <8It9R-6Eb-3@gated-at.bofh.it>
[not found] ` <8IAkZ-WW-1@gated-at.bofh.it>
2007-07-19 13:37 ` Bodo Eggert
[not found] <8IdHQ-7Pm-25@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-27@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-29@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-31@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-33@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-35@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-37@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-39@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-41@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-43@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-45@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-47@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-49@gated-at.bofh.it>
[not found] ` <8IdHQ-7Pm-23@gated-at.bofh.it>
2007-07-18 11:09 ` Nick Craig-Wood
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=46994BE3.7010608@gmail.com \
--to=rene.herman@gmail.com \
--cc=dgc@sgi.com \
--cc=jeremy@goop.org \
--cc=jesper.juhl@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mpm@selenic.com \
--cc=ray-lk@madrabbit.org \
--cc=wli@holomorphy.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