From: kanoj@google.engr.sgi.com (Kanoj Sarcar)
To: Rik van Riel <riel@nl.linux.org>
Cc: linux-mm@kvack.org, sct@redhat.com
Subject: Re: filecache/swapcache questions
Date: Tue, 15 Jun 1999 08:51:35 -0700 (PDT) [thread overview]
Message-ID: <199906151551.IAA74604@google.engr.sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.05.9906150930310.13631-100000@humbolt.nl.linux.org> from "Rik van Riel" at Jun 15, 99 09:32:19 am
>
> On Tue, 15 Jun 1999, Kanoj Sarcar wrote:
Hmm, I am either misunderstanding your explanation, or I couldn't
make the crux of my questions clear in the first posting.
>
> > Q1. Is it really needed to put all the swap pages in the swapper_inode
> > i_pages?
>
> Yes, see below.
I understand that it is beneficial for performance reasons to have
a list of swapped pages which are clean wrt their disk copies in
the swapcache, which is implemented as a file cache on swapper_inode.
What I am trying to find out is if it is enough to put these pages
in the hash queue for swapper_inode, without really also putting
them in the inode queue for swapper_inode. Its not like we ever
"truncate" swapper_inode, that we will need to go thru its i_pages
list ...
>
> > How will it be possible for a page to be in the swapcache, for its
> > reference count to be 1 (which has been checked just before), and for
> > its swap_count(page->offset) to also be 1? I can see this being
> > possible only if an unmap/exit path might lazily leave a anonymous
> > page in the swap cache, but I don't believe that happens.
>
> It does happen. We use a 'two-stage' reclamation process instead
> of page aging. It seems to work wonderfully -- nice page aging
> properties without the overhead. Plus, it automatically balances
> swap and cache memory since the same reclamation routine passes
> over both types of pages.
>
I still can't see how this can happen. Note that try_to_swap_out
either does a get_swap_page/swap_duplicate on the swaphandle, which
gets the swap_count up to 2, or if it sees a page already in the
swapcache, it just does a swap_duplicate. Either way, if the only
reference on the physical page is from the swapcache, there will be
at least one more reference on the swap page other than due to the
swapcache. What am I missing?
Thanks.
Kanoj
kanoj@engr.sgi.com
PS: Q4: who uses rw_swap_page_nolock, and what is shmfs? Note that
rw_swap_page_nolock is the only caller that passes in non PageSwapCache
pages into rw_swap_page_base(), which otherwise could assume that
all pages passed into it are PageSwapCache, which would eliminate
the need for a seperate PG_swap_unlock_after bit.
--
To unsubscribe, send a message with 'unsubscribe linux-mm my@address'
in the body to majordomo@kvack.org. For more info on Linux MM,
see: http://humbolt.geo.uu.nl/Linux-MM/
next prev parent reply other threads:[~1999-06-15 15:51 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-06-15 7:16 Kanoj Sarcar
1999-06-15 7:32 ` Rik van Riel
1999-06-15 15:51 ` Kanoj Sarcar [this message]
1999-06-15 20:24 ` Rik van Riel
1999-06-15 21:02 ` Kanoj Sarcar
1999-06-16 20:37 ` Andrea Arcangeli
1999-06-17 23:33 ` Stephen C. Tweedie
1999-06-18 0:20 ` Kanoj Sarcar
1999-06-18 17:00 ` Stephen C. Tweedie
1999-06-18 17:03 ` Kanoj Sarcar
1999-06-21 5:29 Kanoj Sarcar
1999-06-21 11:25 ` Stephen C. Tweedie
1999-06-21 16:46 ` Kanoj Sarcar
1999-06-21 16:57 ` Stephen C. Tweedie
1999-06-21 17:36 ` Kanoj Sarcar
1999-06-21 17:49 ` Stephen C. Tweedie
1999-06-21 18:46 ` Kanoj Sarcar
1999-06-21 23:44 ` Kanoj Sarcar
1999-06-24 22:23 ` Andrea Arcangeli
1999-06-24 23:55 ` Kanoj Sarcar
1999-06-25 0:26 ` Andrea Arcangeli
1999-06-28 22:36 ` Stephen C. Tweedie
1999-06-28 23:24 ` Kanoj Sarcar
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=199906151551.IAA74604@google.engr.sgi.com \
--to=kanoj@google.engr.sgi.com \
--cc=linux-mm@kvack.org \
--cc=riel@nl.linux.org \
--cc=sct@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox