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
next prev parent 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®