From: Rik van Riel <riel@redhat.com>
To: Hugh Dickins <hugh@veritas.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Andrew Morton <akpm@linux-foundation.org>,
Lee Schermerhorn <lee.schermerhorn@hp.com>,
Nick Piggin <npiggin@suse.de>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH] splitlru: BDI_CAP_SWAP_BACKED
Date: Mon, 30 Jun 2008 17:17:21 -0400 [thread overview]
Message-ID: <20080630171721.51d0acc6@bree.surriel.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0806302103240.3064@blonde.site>
On Mon, 30 Jun 2008 21:55:13 +0100 (BST)
Hugh Dickins <hugh@veritas.com> wrote:
> On Mon, 30 Jun 2008, Rik van Riel wrote:
> >
> > Tmpfs is often in the same boat as anonymous memory.
> > Used for shared memory segments, or for files that
> > are temporary and will be gone soon.
>
> Anonymous memory, and temporary files, are often soon gone,
> okay. But I don't find that generalization compelling; and
> if they're soon gone, does it matter which lru they go on?
Temporary files are often soon gone.
Anonymous memory and shmem segments tend to stick around
for longer.
> > If swap space runs out, tmpfs pages should not be
> > scanned.
>
> That point I like. But I hope they'd go to the Unevictable
> on systems with no swap at all (of course, as with mlocking,
> that can change soon after).
If we have them on the *_ANON LRUs, we will automatically
not scan them when swap space runs out. Just like we do
not scan anonymous pages when there is no swap space left.
> > To me, this suggests they should probably continue
> > to live on the *_ANON LRUs. Worst case we make
> > tmpfs pages in files that are not mmaped (/tmp use)
> > start out on the inactive list, so they get evicted
> > first.
>
> Tweaking in/active I'll gladly leave to you! Whatever
> proves best. What's worrying me is that we have always treated
> shmem/tmpfs pages as file pages
This is a performance problem for database systems,
where the system ends up swapping out the shared
memory segment.
> (e.g. in /proc/meminfo as Cached
> not as SwapCached), up until the point that we retire them to
> swap; but in splitlru you're sending them down another path;
> then mem cgroups seem to want them as something else again.
Having the mem cgroups consistent with the global LRU
implementation would be good, indeed. That will make
balancing a bit easier.
> Your SwapBacked may indeed turn out to be the only implementable
> distinction, but it does worry me. A more useful distinction,
> my gut tells me, would be separate LRUs for page_mapped() and
> !page_mapped(), which reflects the existing swappiness notion.
>
> But that immediately hits the difficulty we have in switching LRU
> midstream, which your SwapBacked-throughout tmpfs neatly sidesteps.
>
> I'd really like to be able to try page_mapped/!page_mapped versus
> swap-backed/file-backed, but it would need some LRU-switching
> infrastructure (which might come at a prohibitive performance
> cost, since it's the batching that poses the problem).
Agreed, we understand the page_mapped/!page_mapped distinction
quite well. On the other hand, we do not understand LRU
acrobatics (moving pages between lists on mmap/munmap) and the
consequences of that...
I suspect we'll just have to tweak the swap-backed/file-backed
code until it works right. Once Andrew comes out with a new
-mm (with all the stability fixes), I will create a kernel RPM
with the latest split LRU code for Fedora 9, so we can get some
wider testing.
I have some performance tweaks in mind already, but not enough
data yet to justify them. I will continue working on that.
--
All rights reversed.
next prev parent reply other threads:[~2008-06-30 21:18 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-29 0:20 [PATCH] splitlru: shmem_getpage SetPageSwapBacked sooner Hugh Dickins
2008-06-29 0:22 ` [PATCH] splitlru: memcg swapbacked pages active Hugh Dickins
2008-06-29 8:19 ` KOSAKI Motohiro
2008-06-29 12:20 ` Hugh Dickins
2008-06-29 12:58 ` KOSAKI Motohiro
2008-06-29 13:51 ` Hugh Dickins
2008-06-30 2:44 ` KAMEZAWA Hiroyuki
2008-06-30 19:19 ` Hugh Dickins
2008-06-30 8:36 ` [RFC][PATCH] memcg: change shmem handler KAMEZAWA Hiroyuki
2008-06-30 19:52 ` Hugh Dickins
2008-07-01 0:56 ` kamezawa.hiroyu
2008-07-02 2:16 ` [RFC][PATCH] memcg: shmem swap cache KAMEZAWA Hiroyuki
2008-07-01 1:06 ` Re: Re: [RFC][PATCH] memcg: change shmem handler kamezawa.hiroyu
2008-07-03 7:15 ` Balbir Singh
2008-07-03 7:56 ` KAMEZAWA Hiroyuki
2008-06-29 0:24 ` [PATCH] splitlru: BDI_CAP_SWAP_BACKED Hugh Dickins
2008-06-29 8:48 ` KOSAKI Motohiro
2008-06-29 15:16 ` Rik van Riel
2008-06-30 2:53 ` KAMEZAWA Hiroyuki
2008-06-30 19:23 ` Hugh Dickins
2008-06-30 19:49 ` Rik van Riel
2008-06-30 20:55 ` Hugh Dickins
2008-06-30 21:17 ` Rik van Riel [this message]
2008-06-29 8:09 ` [PATCH] splitlru: shmem_getpage SetPageSwapBacked sooner KOSAKI Motohiro
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=20080630171721.51d0acc6@bree.surriel.com \
--to=riel@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=hugh@veritas.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=lee.schermerhorn@hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=npiggin@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
all inboxes | Powered by JetHome®