From: Christoph Lameter <clameter@sgi.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Peter Zijlstra <peterz@infradead.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC 0/7] Postphone reclaim laundry to write at high water marks
Date: Wed, 22 Aug 2007 12:19:06 -0700 (PDT) [thread overview]
Message-ID: <Pine.LNX.4.64.0708221211170.14599@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <20070822074508.GA3160@elte.hu>
On Wed, 22 Aug 2007, Ingo Molnar wrote:
> Could you outline the "big picture" as you see it? To me your argument
> that reclaim can always be done instantly and that the cases where it
> cannot be done are pathological and need to be avoided is fundamentally
> dangerous and quite a bit short-sighted at first glance.
That is a bit overdrawing my argument. The issues that Peter saw can be
fixed by allowing recursive reclaim (see the earlier patchset). The rest
is so far sugar on top or building extreme cases where we already have
trouble.
> The big picture way to think about this is the following: the free page
> pool is the "cache" of the MM. It's what "greases" the mechanism and
> bridges the inevitable reclaim latency and makes "atomic memory"
> available to the reclaim mechanism itself. We _cannot_ remove that cache
> without a conceptual replacement (or a _very_ robust argument and proof
> that the free pages pool is not needed at all - this would be a major
> design change (and a stupid mistake IMO)). Your patchset, in essence,
> tries to claim that we dont really need this cache and that all that
> matters is to keep enough clean pagecache pages around. That approach
> misses the full picture and i dont think we can progress without
> agreeing on the fundamentals first.
The patchset attempts to deal with the reserves in a more intelligent
way in order not to fail when this pool becomes exhausted because some
device needs a lot of memory in the writeout path.
> That "cache" cannot be handled in your scheme: a fully or mostly
> anonymous workload (tons of apps are like that) instantly destroys the
> "there is always a minimal amount of atomically reclaimable pages
> around" property of freelists, and this cannot be talked or tweaked
> around by twiddling any existing property of anonymous reclaim.
A extreme anonymous workload like discussed here can even cause the
current VM to fail. Realistically at least portions of the executable and
varios slab caches will remain in memory in addition to the reserves.
> Anonymous memory is dirty and takes ages to reclaim. The fact that your
> patchset causes an easy anonymous OOM further underlines this flaw of
> your thinking. Not making anonymous workloads OOM is the _hardest_ part
> of the MM, by far. Pagecache reclaim is a breeze in comparison :-)
The central flaw in my thinking was the switching of of PF_MEMALLOC on the
writeout path instead of allowing recursive PF_MEMALLOC reclaim as in the
first patch. But the first patchset did not have that flaw.
--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-08-22 19:19 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-08-20 21:50 Christoph Lameter
2007-08-20 21:50 ` [RFC 1/7] release_lru_pages(): Generic release of pages to the LRU Christoph Lameter
2007-08-21 14:52 ` Mel Gorman
2007-08-21 20:51 ` Christoph Lameter
2007-08-20 21:50 ` [RFC 2/7] Move checks from pageout() to shrink_page_list Christoph Lameter
2007-08-20 21:50 ` [RFC 3/7] shrink_page_list: Support isolating dirty pages on laundry list Christoph Lameter
2007-08-21 15:04 ` Mel Gorman
2007-08-21 20:53 ` Christoph Lameter
2007-08-20 21:50 ` [RFC 4/7] Pass laundry through shrink_inactive_list() and shrink_zone() Christoph Lameter
2007-08-20 21:50 ` [RFC 5/7] Laundry handling for direct reclaim Christoph Lameter
2007-08-21 15:06 ` Mel Gorman
2007-08-21 20:55 ` Christoph Lameter
2007-08-21 15:19 ` Mel Gorman
2007-08-21 21:00 ` Christoph Lameter
2007-08-20 21:50 ` [RFC 6/7] kswapd: Do laundry after reclaim Christoph Lameter
2007-08-20 21:50 ` [RFC 7/7] Switch of PF_MEMALLOC during writeout Christoph Lameter
2007-08-20 23:08 ` Andi Kleen
2007-08-20 23:19 ` Christoph Lameter
2007-08-21 1:13 ` Andi Kleen
2007-08-21 10:36 ` [RFC 0/7] Postphone reclaim laundry to write at high water marks Peter Zijlstra
2007-08-21 20:48 ` Christoph Lameter
2007-08-21 21:13 ` Peter Zijlstra
2007-08-21 21:29 ` Christoph Lameter
2007-08-21 21:43 ` Rik van Riel
2007-08-21 22:32 ` Christoph Lameter
2007-08-23 12:05 ` Andrea Arcangeli
2007-08-23 20:23 ` Christoph Lameter
2007-08-21 22:09 ` Peter Zijlstra
2007-08-21 22:43 ` Christoph Lameter
2007-08-22 7:02 ` Peter Zijlstra
2007-08-22 19:04 ` Christoph Lameter
2007-08-22 20:03 ` Peter Zijlstra
2007-08-22 20:16 ` Christoph Lameter
2007-08-23 7:39 ` Peter Zijlstra
2007-08-26 4:52 ` Rik van Riel
2007-08-23 12:16 ` Andrea Arcangeli
2007-08-22 7:45 ` Ingo Molnar
2007-08-22 19:19 ` Christoph Lameter [this message]
2007-08-23 12:08 ` Andrea Arcangeli
2007-08-23 12:59 ` Peter Zijlstra
2007-08-21 15:16 ` Rik van Riel
2007-08-21 20:59 ` Christoph Lameter
2007-08-21 21:14 ` Rik van Riel
2007-08-21 21:30 ` Christoph Lameter
2007-08-21 15:51 ` Dave McCracken
2007-08-21 21:03 ` Christoph Lameter
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=Pine.LNX.4.64.0708221211170.14599@schroedinger.engr.sgi.com \
--to=clameter@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mingo@elte.hu \
--cc=peterz@infradead.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