All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Rik van Riel <riel@redhat.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: userspace pagecache management tool
Date: Sat, 3 Mar 2007 17:02:37 -0800	[thread overview]
Message-ID: <20070303170237.31d26382.akpm@linux-foundation.org> (raw)
In-Reply-To: <45EA0C3D.1010001@redhat.com>

On Sat, 03 Mar 2007 19:01:01 -0500 Rik van Riel <riel@redhat.com> wrote:

> Andrew Morton wrote:
> > On Sat, 03 Mar 2007 17:25:30 -0500 Rik van Riel <riel@redhat.com> wrote:
> > 
> >> backup program
> > 
> > A suitable policy for a backup program would probably be to invalidate any
> > output file(s) and to invalidate those pages of the input files which were
> > not in cache when the backup program first opened those files.  That way
> > the backup program will have no effect on the cache state, except for the
> > race situation where someone read an uncached file while the backup program
> > was reading from it too.
> 
> The use-once policy we have in the kernel should work
> perfectly fine for backups.  All we need to do is
> actually honor the accessed bit on active page cache
> pages, instead of flushing them onto the inactive
> list.
> 
> What am I overlooking?

That'll improve backups but will break other things.

To do this effectively we'd need to change the policy so that new pagecache
allocations cause no scanning of used-twice pages at all.  So that even
after many gigs of backing up, the working set is still there.

Problem is, (for example) what about the person who has 80% of memory in
used-twice state and who then reads a file or files which are 20% or more of
the size of memory, two or more times.  It'll be 100% cache misses, every time.
This will happen quite a lot.  IOW, once those pages are in used-twice state,
how does further pagecache activity ever get them _out_ of that state?  Only
by joining the used-twice page set, and that can't happen if the used-once-so-far
pages got reclaimed.

Doing a refault thing would help a bit, but stops working at a certain point.


> > This can be added in an hour or two with no kernel changes (use mincore).
> 
> mincore only works for mmaped areas, we'd need an fincore
> to work with file handles.

The LD_PRELOAD code has the fd and can mmap it to perform the pagecache
probe.

fincore() would be a bit neater, but given the rarity with which mincore()
is used it's perhaps hard to justify adding a slightly more efficient and
slightly more convenient subset of mincore().


  reply	other threads:[~2007-03-04  1:02 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-03 20:29 userspace pagecache management tool Andrew Morton
2007-03-03 20:40 ` Rik van Riel
2007-03-03 21:12   ` Andrew Morton
2007-03-03 21:30     ` Rik van Riel
2007-03-03 21:41       ` bert hubert
2007-03-03 22:14         ` Andrew Morton
2007-03-03 22:19           ` Rik van Riel
2007-03-03 22:26             ` Andrew Morton
2007-03-03 22:28               ` Rik van Riel
2007-03-03 22:38                 ` Andrew Morton
2007-03-03 22:56               ` Erik Andersen
2007-03-03 23:01               ` bert hubert
2007-03-03 23:45                 ` Andrew Morton
2007-03-06 12:10                   ` Pádraig Brady
2007-03-06 21:40                     ` Andrew Morton
2007-03-06 21:44                       ` Rik van Riel
2007-03-07 11:39                       ` Pádraig Brady
2007-03-07 18:50                         ` Andrew Morton
2007-03-08  7:59                   ` Vaidyanathan Srinivasan
2007-03-08  8:12                     ` Andrew Morton
2007-03-03 22:07       ` Andrew Morton
2007-03-03 22:25         ` Rik van Riel
2007-03-03 22:37           ` Andrew Morton
2007-03-03 22:52           ` Andrew Morton
2007-03-04  0:01             ` Rik van Riel
2007-03-04  1:02               ` Andrew Morton [this message]
2007-03-04  1:23                 ` Rik van Riel
2007-03-04  1:49                   ` Andrew Morton
2007-03-04  1:56                     ` Rik van Riel
2007-03-04 12:07                       ` Andrew Morton
2007-03-04 14:35                         ` Peter Zijlstra
2007-03-04 16:01                         ` Rik van Riel
2007-03-03 22:58 ` Ray Lee
2007-03-03 23:34   ` Andrew Morton
2007-03-04  1:02     ` Ray Lee
2007-03-04  1:21       ` Andrew Morton
2007-03-04  0:14 ` Eric St-Laurent
2007-03-04  1:10   ` Andrew Morton
2007-03-04  1:39   ` Rik van Riel
2007-03-04  1:16 ` Lee Revell
2007-03-04  1:39   ` Andrew Morton
2007-03-04  2:35     ` Lee Revell
2007-03-04  4:35       ` Andrew Morton
2007-03-05 11:02 ` Pádraig Brady
2007-03-05 11:12   ` Andrew Morton

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=20070303170237.31d26382.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --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.