linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Benjamin C.R. LaHaise" <blah@kvack.org>
To: JF Martinez <jfm2@club-internet.fr>
Cc: linux-mm@kvack.org
Subject: Re: A question about pages in stacks
Date: Thu, 13 Apr 2000 18:59:01 -0400 (EDT)	[thread overview]
Message-ID: <Pine.LNX.3.96.1000413184149.14199A-100000@kanga.kvack.org> (raw)
In-Reply-To: <200004132136.XAA01065@agnes.bagneux.maison>

On Thu, 13 Apr 2000, JF Martinez wrote:

> Will I be flamed if I consider this as a weakness in Linux?  While the
> hardware will notify the kernel only about increasings in the stack
> segment the fact is a page who is in the stack segment but on the
> wrong side of the bottom of the stack is in fact a free page a nd does
> not need to be written to disk.  Unless that it is considered that
> checking for these "false dirty" pages is so slow that it will absorb
> the benefits got from the reduced number of disk writings.

Well, I hope you don't consider this a flame, but let me try to explain
why doing the shrink from the kernel isn't as simple as it might seem: 
first off, vma's and mm_struct's, and hence the stack mapping, aren't
directly connected to the registers of the process being used.  Sure, we
could get around that by walking the list of tasks and examining the
registers of the tasks that use the mapping (although that in itself is
horrible).  Now what do we do if the process is still running on another
CPU?  Do we send an IPI to find out what the stack address is?  Definately
not worth the cost.  Besides, what if the process is temporarily making
use of an alternate stack for signal processing (or something else
internal to the task)?  Implementing this policy heavy optimization for
such a rare case (the stack pages of a typical process are a very small
portion of their memory usage) in the kernel is not worth the
difficulties.

Otoh, it's very easy to implement in userland as a prune_stack() function 
that gets called occasionally from the right place.  As I said in my last
message, see the thread titled "Stack & Policy" in the linux-mm archives
from earlier this month.

		-ben


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/

      reply	other threads:[~2000-04-13 22:59 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-04-13 19:58 JF Martinez
2000-04-13 21:00 ` Stephen C. Tweedie
2000-04-13 21:27 ` Benjamin C.R. LaHaise
2000-04-13 21:36   ` JF Martinez
2000-04-13 22:59     ` Benjamin C.R. LaHaise [this message]

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=Pine.LNX.3.96.1000413184149.14199A-100000@kanga.kvack.org \
    --to=blah@kvack.org \
    --cc=jfm2@club-internet.fr \
    --cc=linux-mm@kvack.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