mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: bert hubert <bert.hubert@netherlabs.nl>
To: Rik van Riel <riel@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>, linux-kernel@vger.kernel.org
Subject: Re: userspace pagecache management tool
Date: Sat, 3 Mar 2007 22:41:09 +0100	[thread overview]
Message-ID: <20070303214108.GA28961@outpost.ds9a.nl> (raw)
In-Reply-To: <45E9E910.2070804@redhat.com>

On Sat, Mar 03, 2007 at 04:30:56PM -0500, Rik van Riel wrote:

> The user has been accessing the kernel tree over and over
> again, for hours on end (compile testing a patch).  Along
> comes a backup program, that tells you to evict the whole
> thing from the cache.

This is arguably due to a linux misimplementation of posix_fadvise. SuS v3
clearly states:

  The posix_fadvise() function shall advise the implementation on the
  expected behavior of the application with respect to the data in the file
  associated with the open file descriptor

Note how it refers to the *application*. This is reiterated here:

  POSIX_FADV_WILLNEED 
    Specifies that the application expects to access the specified data in
    the near future.

  POSIX_FADV_DONTNEED
    Specifies that the application expects that it will not access the
    specified data in the near future.

  POSIX_FADV_NOREUSE
    Specifies that the application expects to access the specified data once
    and then not reuse it thereafter.

Linux however implements posix_fadvise globally:

  POSIX_FADV_DONTNEED 
    attempts to free cached pages associated with the specified region.

  POSIX_FADV_WILLNEED and POSIX_FADV_NOREUSE 
    both initiate a non-blocking read of the specified region into the page
    cache.

> How can you make global policy decisions based on the intent
> of one program?

By not doing so. Andrew's program is fine in principle, except that the
linux kernel treats the communication of a program's intent as a global
instruction.

Also, Andrew's description is a tad misleasing, as the size of the page
cache might be altered a lot in case content is accessed that was previously
cached!

With my userspace hat on, I'd love to have a proper way to communicate my
*program's* expectations to the kernel, without stomping other programs.

Also with the same hat on, I hope to rarely *need* to communicate my
expectations because the kernel correctly predicts many cases.

	Bert

-- 
http://www.PowerDNS.com      Open source, database driven DNS Software 
http://netherlabs.nl              Open and Closed source services

  reply	other threads:[~2007-03-03 21:41 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-03 20:29 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 [this message]
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
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=20070303214108.GA28961@outpost.ds9a.nl \
    --to=bert.hubert@netherlabs.nl \
    --cc=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 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®