From: "Stephen C. Tweedie" <sct@dcs.ed.ac.uk>
To: Rik van Riel <H.H.vanRiel@fys.ruu.nl>
Cc: "Stephen C. Tweedie" <sct@dcs.ed.ac.uk>,
"Dr. Werner Fink" <werner@suse.de>,
torvalds@transmeta.com, nahshon@actcom.co.il,
alan@lxorguk.ukuu.org.uk, paubert@iram.es,
mingo@chiara.csoma.elte.hu, linux-mm@kvack.org
Subject: Re: Fairness in love and swapping
Date: Fri, 27 Feb 1998 19:41:04 GMT [thread overview]
Message-ID: <199802271941.TAA01151@dax.dcs.ed.ac.uk> (raw)
In-Reply-To: <Pine.LNX.3.91.980227003050.6476B-100000@mirkwood.dummy.home>
Hi,
> AFAIK, mapped images aren't part of a proces' RSS, but
> are page-cached (page->inode type of RSS). And swapping
> of those vma's _is_ done in shrink_mmap() in filemap.c.
No, absolutely not. These pages are certainly present in the page
cache, but they are not swapped out there, and filemap.c never deals
directly with vma scans. shrink_mmap() refuses to touch any pages which
have a reference count not exactly equal to one, so it avoids memory
mapped pages like the plague. Memory mapped images are referenced
directly by a process's page tables, so they count against its resident
set size (which is defined as the number of present user-mode pages in
the page tables).
vmscan.c::try_to_swap_out() unhooks these pages from the page tables
when it wants to. The final swapout of these pages takes place at the
end of that function, where it calls filemap.c::page_unuse(), which
takes care of removing the page from the page cache as soon as the last
reference from the page tables is removed.
> Furthermore, it's quite useful if your read-ahead pages
> stay in memory for a while so you don't read them two
> or even three times before they're actually used.
We never will read more than once --- the pages are still in the page
cache, so whenever we try to swap them in, we can always find the
readahead copy there. Memory-mapped pages have to be in the page cache
before we are allowed to link them into the page tables, so the pages
are shared by both in the page cache *and* the page tables. It is the
swapper which is responsible for turfing shared pages. shrink_mmap()
only ever looks for unshared cache pages and buffers.
> But if I've overlooked something, I'd really like to hear about
> it... A bit of a clue never hurts when coding up new patches :-)
You're welcome. :)
Cheers,
Stephen.
next prev parent reply other threads:[~1998-02-27 21:43 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-02-25 20:32 Stephen C. Tweedie
1998-02-25 21:02 ` Linus Torvalds
1998-02-25 21:44 ` Rik van Riel
1998-02-25 21:39 ` Dr. Werner Fink
1998-02-25 22:27 ` Rik van Riel
1998-02-26 11:03 ` Dr. Werner Fink
1998-02-26 11:34 ` Rik van Riel
1998-02-26 18:57 ` Dr. Werner Fink
1998-02-26 19:32 ` Rik van Riel
1998-02-26 22:44 ` Stephen C. Tweedie
1998-02-26 23:34 ` Rik van Riel
1998-02-27 19:41 ` Stephen C. Tweedie [this message]
1998-03-02 16:19 ` Rik van Riel
1998-03-02 22:35 ` Stephen C. Tweedie
1998-03-02 23:14 ` Rik van Riel
1998-03-03 22:59 ` Stephen C. Tweedie
1998-02-26 8:05 ` Rogier Wolff
1998-02-26 13:00 ` Dr. Werner Fink
1998-02-26 22:36 ` Stephen C. Tweedie
1998-02-26 23:20 ` Dr. Werner Fink
1998-02-26 14:30 ` Rik van Riel
1998-02-26 22:41 ` Stephen C. Tweedie
1998-02-26 23:21 ` Rik van Riel
1998-02-26 22:33 ` Stephen C. Tweedie
1998-02-26 22:49 ` Rik van Riel
1998-02-27 2:56 ` Michael O'Reilly
[not found] <199802270729.IAA00680@cave.BitWizard.nl>
1998-02-27 11:26 ` Rik van Riel
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=199802271941.TAA01151@dax.dcs.ed.ac.uk \
--to=sct@dcs.ed.ac.uk \
--cc=H.H.vanRiel@fys.ruu.nl \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-mm@kvack.org \
--cc=mingo@chiara.csoma.elte.hu \
--cc=nahshon@actcom.co.il \
--cc=paubert@iram.es \
--cc=torvalds@transmeta.com \
--cc=werner@suse.de \
/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