public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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.


  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