From: Daniel Phillips <phillips@arcor.de>
To: Scott Kaplan <sfkaplan@cs.amherst.edu>, linux-mm@kvack.org
Cc: Andrew Morton <akpm@zip.com.au>
Subject: Re: About the free page pool
Date: Tue, 3 Sep 2002 18:46:06 +0200 [thread overview]
Message-ID: <20020903164325Z16491-4014+1409@humbolt.nl.linux.org> (raw)
In-Reply-To: <218D9232-BEBF-11D6-A3BE-000393829FA4@cs.amherst.edu>
On Monday 02 September 2002 23:58, Scott Kaplan wrote:
> My goal was a different one: I just wanted some further simplification of
> the replacement mechanism.
Simplifying the replacement mechanism has value as an aid to understanding,
or perhaps debugging. There's also a strong case for maintaining a simple
VM design in parallel with the fancy one, as a compilation option.
Occasionally, someone will demonstrate that a far simpler design outperforms
the fancy design de jour, causing considerable embarrassment to the incumbent
designers. It doesn't happen often though. Usually, complexity is added to
the VM for a good reason, and the fancier it gets, the better it works.
Examples of this are division of the lru lists per zone and batching of vm
operations.
At the risk of fueling (ahem) an analogy war, consider the classic
carburetor. As a means of mixing fuel and air for combustion, it's about as
simple as you can get, but you can tweak the design as much as you like and
it will never perform as well as a computer-controlled fuel injection system.
Even with all the recent optimizations lathered on, we are still working with
a very simple underlying design, more like a carburetor than a flue injection
system. We mainly cross our fingers and hope that the system will magically
solve its own problems. For example, we hope that by making threads do their
own vm scanning they will throttle and balance their memory consumption
properly versus other threads. This strategy has never worked reliably
across a broad range of loads, though after a few years of tweaking, many of
its typical faux pas have been identified and suppressed.
Such bandaid solutions do work for a time. The problem is, the bandaids tend
not to scale very well, either up or down. So each new kernel generation
requires a new set of bandaids, and usually a new team of medics to apply
them. After a while, the bandaids alone add up to more lines of code than
the underlying VM mechanism, and it's time for a paradigm shift. We're
nearly at that point now.
In other words, after 2.6, carburetors will be out and computer-controlled
fuel-injection will be in.
--
Daniel
--
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-mm.org/
prev parent reply other threads:[~2002-09-03 16:46 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-02 19:50 Scott Kaplan
2002-09-02 20:33 ` Andrew Morton
2002-09-02 20:50 ` Rik van Riel
2002-09-02 21:21 ` Andrew Morton
2002-09-02 21:15 ` Rik van Riel
2002-09-02 21:58 ` Scott Kaplan
2002-09-03 1:11 ` Andrew Morton
2002-09-03 1:35 ` Rik van Riel
2002-09-03 5:12 ` William Lee Irwin III
2002-09-03 5:43 ` Andrew Morton
2002-09-03 5:43 ` William Lee Irwin III
2002-09-03 16:46 ` Daniel Phillips [this message]
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=20020903164325Z16491-4014+1409@humbolt.nl.linux.org \
--to=phillips@arcor.de \
--cc=akpm@zip.com.au \
--cc=linux-mm@kvack.org \
--cc=sfkaplan@cs.amherst.edu \
/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