From: Andrew Morton <akpm@osdl.org>
To: Rik van Riel <riel@redhat.com>
Cc: Christoph Lameter <clameter@sgi.com>,
Nick Piggin <nickpiggin@yahoo.com.au>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC] Track mlock()ed pages
Date: Sat, 27 Jan 2007 14:30:13 -0800 [thread overview]
Message-ID: <20070127143013.e2c839c0.akpm@osdl.org> (raw)
In-Reply-To: <45BBCFE9.5010600@redhat.com>
On Sat, 27 Jan 2007 17:19:21 -0500
Rik van Riel <riel@redhat.com> wrote:
> Andrew Morton wrote:
>
> > Of course it would. But how do you know it is "too expensive"? We "scan
> > all the vmas mapping a page" as a matter of course in the page scanner -
> > millions of times a minute. If that's "too expensive" then ouch.
>
> We can do it lazily.
>
> At mlock time, move pages onto the mlocked list, unless they
> are there already.
Needs another page flag to determine what list the page is on (eek).
> On munlock, move pages to the active list.
We'd need to determine whether some other vma has mlocked the page too.
That's either the page_struct refcount or the vma walk. The latter is
equivalent to what I'm suggesting.
> For mlock-only
> memory (shared memory segments?) we could add a simple check
> to see if the next process on the list has the page mlocked,
> checking only that one.
>
> While scanning the active list, move mlocked pages that are
> found back onto the mlocked list.
>
> This lazy movement of pages will impact shared libraries,
> but probably not shared memory segments.
>
> Does this sound workable?
I'm still not sure what problem we're trying to solve here.
Knowing how many mlocked pages there are in a zone doesn't sound terribly
interesting and I don't recall ever wanting to know that.
Being able to keep mlocked pages off the LRU altogether sounds more useful.
It's all rather a tight corner case - people don't use mlock much.
WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@osdl.org>
To: Rik van Riel <riel@redhat.com>
Cc: Christoph Lameter <clameter@sgi.com>,
Nick Piggin <nickpiggin@yahoo.com.au>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC] Track mlock()ed pages
Date: Sat, 27 Jan 2007 14:30:13 -0800 [thread overview]
Message-ID: <20070127143013.e2c839c0.akpm@osdl.org> (raw)
In-Reply-To: <45BBCFE9.5010600@redhat.com>
On Sat, 27 Jan 2007 17:19:21 -0500
Rik van Riel <riel@redhat.com> wrote:
> Andrew Morton wrote:
>
> > Of course it would. But how do you know it is "too expensive"? We "scan
> > all the vmas mapping a page" as a matter of course in the page scanner -
> > millions of times a minute. If that's "too expensive" then ouch.
>
> We can do it lazily.
>
> At mlock time, move pages onto the mlocked list, unless they
> are there already.
Needs another page flag to determine what list the page is on (eek).
> On munlock, move pages to the active list.
We'd need to determine whether some other vma has mlocked the page too.
That's either the page_struct refcount or the vma walk. The latter is
equivalent to what I'm suggesting.
> For mlock-only
> memory (shared memory segments?) we could add a simple check
> to see if the next process on the list has the page mlocked,
> checking only that one.
>
> While scanning the active list, move mlocked pages that are
> found back onto the mlocked list.
>
> This lazy movement of pages will impact shared libraries,
> but probably not shared memory segments.
>
> Does this sound workable?
I'm still not sure what problem we're trying to solve here.
Knowing how many mlocked pages there are in a zone doesn't sound terribly
interesting and I don't recall ever wanting to know that.
Being able to keep mlocked pages off the LRU altogether sounds more useful.
It's all rather a tight corner case - people don't use mlock much.
--
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-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-01-27 22:30 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-26 5:43 [RFC] Track mlock()ed pages Christoph Lameter
2007-01-26 5:43 ` Christoph Lameter
2007-01-26 6:30 ` Nick Piggin
2007-01-26 6:30 ` Nick Piggin
2007-01-26 6:36 ` Christoph Lameter
2007-01-26 6:36 ` Christoph Lameter
2007-01-26 11:13 ` Andrew Morton
2007-01-26 11:13 ` Andrew Morton
2007-01-26 12:00 ` Nick Piggin
2007-01-26 12:00 ` Nick Piggin
2007-01-26 15:44 ` Christoph Lameter
2007-01-26 15:44 ` Christoph Lameter
2007-01-26 18:10 ` Andrew Morton
2007-01-26 18:10 ` Andrew Morton
2007-01-26 18:21 ` KAMEZAWA Hiroyuki
2007-01-26 18:21 ` KAMEZAWA Hiroyuki
2007-01-26 18:23 ` Christoph Lameter
2007-01-26 18:23 ` Christoph Lameter
2007-01-26 18:42 ` Andrew Morton
2007-01-26 18:42 ` Andrew Morton
2007-01-27 22:19 ` Rik van Riel
2007-01-27 22:19 ` Rik van Riel
2007-01-27 22:30 ` Andrew Morton [this message]
2007-01-27 22:30 ` Andrew Morton
2007-01-27 22:36 ` Rik van Riel
2007-01-27 22:36 ` Rik van Riel
2007-01-26 11:46 ` Nick Piggin
2007-01-26 11:46 ` Nick Piggin
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=20070127143013.e2c839c0.akpm@osdl.org \
--to=akpm@osdl.org \
--cc=clameter@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nickpiggin@yahoo.com.au \
--cc=riel@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.