From: "Scott F. Kaplan" <sfkaplan@cs.amherst.edu>
To: linux-mm@kvack.org
Subject: Re: [PATCH] 2.2.17pre7 VM enhancement Re: I/O performance on
Date: Mon, 17 Jul 2000 10:32:45 -0400 [thread overview]
Message-ID: <3973190D.94661489@cs.amherst.edu> (raw)
In-Reply-To: <20000717090131.D10936@bp6.sublogic.lan>
[Stephen C. Tweedie]
> > Having said that, LRU is certainly broken, but there are other ways to
> > fix it.
>
> Right. LFU is just one way of fixing LRU.
I, too, am new to this mailing list, but since this comment was in
reference to the one made by Yannis, and I participated in the research
to which he mentioned, I'll chime in anyhow.
The problem is that LFU *doesn't* really fix LRU. There are some cases
for which LRU performs as badly as possible. (Imagine a 100 page memory
and a program that loops over 101 pages.) In those cases, doing
*anything* that deviates from LRU will be an improvement; it's not much
of an accomplishment if LFU does well in this case, as RANDOM would be
an improvement as well. Frequency isn't the right metric -- it just
allows for noise so that LFU can possibly do something different from
LRU.
There's lots of evidence that LFU can perform horribly, particularly
when the reference behavior changes (a.k.a. phase changes.) Frequency
information doesn't reveal this change well, and the system can page
quite badly before the statistics come into line with the new behavior.
When LFU performs well, it's usually because of the skew in how often
recently used pages are re-used; that is, recently used pages *are* used
frequently. It's when that association stops being true for a given set
of pages that a replacement policy must update its notion of the
program's behavior quickly. LRU does so as quickly as the program can
touch some new pages. LFU takes much longer.
LRU does the right thing in most cases. With a little extra data, a
system can notice when LRU is doing the *wrong* thing, and only then
should non-LRU replacement be used. At least, that's the basis of the
paper to which Yannis provided a reference. I'll also throw out of a
reference to my dissertation, which has a more thorough (and, I hope,
better written!) discussion of recency, its uses, and the failings of
frequency information. So, for anyone interested,
<http://www.cs.amherst.edu/~sfkaplan/papers/sfkaplan-dissertation.ps.gz>.
Scott Kaplan
sfkaplan@cs.amherst.edu
http://www.cs.amherst.edu/~sfkaplan
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/
next prev parent reply other threads:[~2000-07-17 14:35 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20000629114407.A3914@redhat.com>
[not found] ` <Pine.LNX.4.21.0006291330520.1713-100000@inspiron.random>
2000-06-29 13:00 ` [PATCH] 2.2.17pre7 VM enhancement Re: I/O performance on 2.4.0-test2 Stephen C. Tweedie
2000-07-06 10:35 ` Andrea Arcangeli
2000-07-06 13:29 ` Stephen C. Tweedie
2000-07-09 17:11 ` Swap clustering with new VM Marcelo Tosatti
2000-07-09 20:53 ` Andrea Arcangeli
2000-07-11 9:36 ` Stephen C. Tweedie
2000-07-09 20:31 ` [PATCH] 2.2.17pre7 VM enhancement Re: I/O performance on 2.4.0-test2 Andrea Arcangeli
2000-07-11 11:50 ` Stephen C. Tweedie
2000-07-11 16:17 ` Andrea Arcangeli
2000-07-11 16:36 ` Juan J. Quintela
2000-07-11 17:33 ` Andrea Arcangeli
2000-07-11 17:45 ` Rik van Riel
2000-07-11 17:54 ` Andrea Arcangeli
2000-07-11 18:03 ` Juan J. Quintela
2000-07-11 19:32 ` Andrea Arcangeli
2000-07-12 0:05 ` John Alvord
2000-07-12 0:52 ` Andrea Arcangeli
2000-07-12 18:02 ` Rik van Riel
2000-07-14 8:51 ` Stephen C. Tweedie
2000-07-11 17:32 ` Rik van Riel
2000-07-11 17:41 ` Andrea Arcangeli
2000-07-11 17:47 ` Rik van Riel
2000-07-11 18:00 ` Andrea Arcangeli
2000-07-11 18:06 ` Rik van Riel
2000-07-17 7:09 ` [PATCH] 2.2.17pre7 VM enhancement Re: I/O performance on Yannis Smaragdakis
2000-07-17 9:28 ` Stephen C. Tweedie
2000-07-17 13:01 ` James Manning
2000-07-17 14:32 ` Scott F. Kaplan [this message]
2000-07-17 14:53 ` Rik van Riel
2000-07-17 16:44 ` Manfred Spraul
2000-07-17 17:02 ` Rik van Riel
2000-07-17 18:55 ` Yannis Smaragdakis
2000-07-17 19:57 ` John Fremlin
2000-07-17 14:46 ` Alan Cox
2000-07-17 14:55 ` Scott F. Kaplan
2000-07-17 15:31 ` Rik van Riel
2000-07-14 9:01 ` [PATCH] 2.2.17pre7 VM enhancement Re: I/O performance on 2.4.0-test2 Stephen C. Tweedie
2000-07-11 18:13 ` Juan J. Quintela
2000-07-11 20:57 ` Roger Larsson
2000-07-11 22:49 ` Juan J. Quintela
2000-07-12 16:01 ` Kev
2000-07-06 13:54 ` [PATCH] 2.2.17pre7 VM enhancement Re: I/O performance on2.4.0-test2 Roman Zippel
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=3973190D.94661489@cs.amherst.edu \
--to=sfkaplan@cs.amherst.edu \
--cc=linux-mm@kvack.org \
/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