From: Daniel Phillips <phillips@bonn-fries.net>
To: Marco Colombo <marco@esi.it>, Rik van Riel <riel@conectiva.com.br>
Cc: <mike_phillips@urscorp.com>, <linux-kernel@vger.kernel.org>
Subject: Re: VM Requirement Document - v0.0
Date: Tue, 3 Jul 2001 17:04:58 +0200 [thread overview]
Message-ID: <01070317045806.00338@starship> (raw)
In-Reply-To: <Pine.LNX.4.33.0107030932510.4236-100000@Megathlon.ESI>
In-Reply-To: <Pine.LNX.4.33.0107030932510.4236-100000@Megathlon.ESI>
On Tuesday 03 July 2001 12:33, Marco Colombo wrote:
> Oh, yes, since that PAGE_AGE_BG_INTERACTIVE_MINIMUM is applied only
> when background aging, maybe it's not enough to keep processes like
> updatedb from causing interactive pages to be evicted.
> That's why I said we should have another way to detect that kind of
> activity... well, the application could just let us know (no need to
> embed an autotuning-genetic-page-replacement-optimizer into the kernel).
> We should just drop all FS metadata accessed by updatedb, since we
> know that's one-shot only, without raising pressure at all.
Note that some of updatedb's metadata pages are of the accessed-often kind,
e.g., directory blocks and inodes. A blanket low priority on all the pages
updatedb touches just won't do.
> Just like
> (not that I'm proposing it) putting those "one-shot" pages directly on
> the inactive-clean list instead of the active list. How an application
> could declare such a behaviour is an open question, of course. Maybe it's
> even possible to detect it. And BTW that's really fine tuning.
> Evicting an 8 hours old page may be a mistake sometime, but it's never
> a *big* mistake.
IMHO, updatedb *should* evict all the "interactive" pages that aren't
actually doing anything[1]. That way it should run faster, provided of
course its accessed-once pages are properly given low priority.
I see three page priority levels:
0 - accessed-never/aged to zero
1 - accessed-once/just loaded
2 - accessed-often
with these transitions:
0 -> 1, if a page is accessed
1 -> 2, if a page is accessed a second time
1 -> 0, if a page gets old
2 -> 0, if a page gets old
The 0 and 1 level pages are on a fifo queue, the 2 level pages are scanned
clock-wise, relying on the age computation[2]. Eviction candidates are taken
from the cold end of the 0 level list, unless it is empty, in which case they
are taken from the 1 level list. In desperation, eviction candidates are
taken from the 2 level list, i.e., random eviction policy, as opposed to what
we do now which is to initiate an emergency scan of the active list for new
inactive candidates - rather like calling a quick board meeting when the
building is on fire.
Note that the above is only a very slight departure from the current design.
And by the way, this is just brainstorming, it hasn't reached the 'proposal'
stage yet.
[1] It would be nice to have a mechanism whereby the evicted 'interactive'
pages are automatically reloaded when updatedb has finished its work. This
is a case of scavenging unused disk bandwidth for something useful, i.e.,
improving the interactive experience.
[2] I much prefer the hot/cold terminology over old/young. The latter gets
confusing because a 'high' age is 'young'. I'd rather think of a high value
as being 'hot'.
--
Daniel
next prev parent reply other threads:[~2001-07-03 15:01 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-06-28 12:20 VM Requirement Document - v0.0 mike_phillips
2001-06-28 12:30 ` Alan Cox
2001-06-28 13:33 ` Tobias Ringstrom
2001-06-28 13:37 ` Alan Cox
2001-06-28 14:04 ` Tobias Ringstrom
2001-06-28 14:14 ` Alan Cox
2001-06-28 14:52 ` Daniel Phillips
2001-06-28 14:39 ` Daniel Phillips
2001-06-28 15:21 ` Jonathan Morton
2001-06-28 16:02 ` Daniel Phillips
2001-06-28 18:01 ` Marco Colombo
2001-07-02 18:42 ` Rik van Riel
2001-07-03 10:33 ` Marco Colombo
2001-07-03 15:04 ` Daniel Phillips [this message]
2001-07-03 18:24 ` Daniel Phillips
2001-07-04 8:12 ` Ari Heitner
2001-07-04 9:41 ` Marco Colombo
2001-07-04 15:03 ` Daniel Phillips
2001-07-03 18:29 ` Daniel Phillips
2001-07-04 8:32 ` Marco Colombo
2001-07-04 14:44 ` Daniel Phillips
-- strict thread matches above, loose matches on Subject: below --
2001-07-05 15:09 mike_phillips
[not found] <fa.jprli0v.qlofoc@ifi.uio.no>
[not found] ` <fa.e66agbv.hn0u1v@ifi.uio.no>
2001-07-05 1:49 ` Dan Maas
2001-07-05 13:02 ` Daniel Phillips
2001-07-05 14:00 ` Xavier Bestel
2001-07-05 14:51 ` Daniel Phillips
2001-07-05 15:04 ` Daniel Phillips
2001-07-05 15:00 ` Xavier Bestel
2001-07-05 15:12 ` Daniel Phillips
2001-07-05 15:12 ` Alan Shutko
2001-07-06 19:09 ` Rik van Riel
2001-07-06 21:57 ` Daniel Phillips
[not found] ` <002501c104f4/mnt/sendme701a8c0@morph>
2001-07-09 12:17 ` Pavel Machek
2001-07-12 23:46 ` Daniel Phillips
2001-07-13 21:07 ` Pavel Machek
2001-07-04 16:08 mike_phillips
2001-06-27 8:53 Martin Knoblauch
2001-06-27 18:13 ` Rik van Riel
2001-06-28 6:59 ` Martin Knoblauch
2001-06-28 11:27 ` Helge Hafting
2001-06-28 11:54 ` Martin Knoblauch
2001-06-28 12:02 ` Tobias Ringstrom
2001-06-28 12:31 ` Xavier Bestel
2001-06-28 13:05 ` Tobias Ringstrom
[not found] <fa.oqkojpv.3hosb7@ifi.uio.no>
[not found] ` <fa.jpsks3v.1o2gag4@ifi.uio.no>
2001-06-27 0:43 ` Dan Maas
2001-06-27 0:45 ` Mike Castle
2001-06-27 10:50 ` Xavier Bestel
2001-06-26 19:58 Jason McMullan
2001-06-26 21:21 ` Rik van Riel
2001-06-26 21:29 ` Jason McMullan
2001-06-26 21:33 ` John Stoffel
2001-06-26 21:42 ` Rik van Riel
2001-06-26 22:21 ` Stefan Hoffmeister
2001-06-26 22:48 ` Jeffrey W. Baker
2001-06-27 0:18 ` Mike Castle
2001-06-28 13:07 ` John Fremlin
2001-06-27 13:36 ` Marco Colombo
2001-06-27 3:55 ` Daniel Phillips
2001-06-27 14:09 ` Pozsar Balazs
2001-06-28 22:47 ` John Fremlin
2001-06-28 22:47 ` John Fremlin
2001-06-30 15:37 ` Pavel Machek
2001-07-10 10:34 ` David Woodhouse
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=01070317045806.00338@starship \
--to=phillips@bonn-fries.net \
--cc=linux-kernel@vger.kernel.org \
--cc=marco@esi.it \
--cc=mike_phillips@urscorp.com \
--cc=riel@conectiva.com.br \
/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.