All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Christoph Lameter <clameter@sgi.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC 0/3] Recursive reclaim (on __PF_MEMALLOC)
Date: Tue, 14 Aug 2007 16:36:43 +0200	[thread overview]
Message-ID: <1187102203.6114.2.camel@twins> (raw)
In-Reply-To: <20070814142103.204771292@sgi.com>

On Tue, 2007-08-14 at 07:21 -0700, Christoph Lameter wrote:
> The following patchset implements recursive reclaim. Recursive reclaim
> is necessary if we run out of memory in the writeout patch from reclaim.
> 
> This is f.e. important for stacked filesystems or anything that does
> complicated processing in the writeout path.
> 
> Recursive reclaim works because it limits itself to only reclaim pages
> that do not require writeout. It will only remove clean pages from the LRU.
> The dirty throttling of the VM during regular reclaim insures that the amount
> of dirty pages is limited. 

No it doesn't. All memory can be tied up by anonymous pages - who are
dirty by definition and are not clamped by the dirty limit.

> If recursive reclaim causes too many clean pages
> to be removed then regular reclaim will throttle all processes until the
> dirty ratio is restored. This means that the amount of memory that can
> be reclaimed via recursive reclaim is limited to clean memory. The default
> ratio is 10%. This means that recursive reclaim can reclaim 90% of memory
> before failing. Reclaiming excessive amounts of clean pages may have a
> significant performance impact because this means that executable pages
> will be removed. However, it ensures that we will no longer fail in the
> writeout path.
> 
> A patch is included to test this functionality. The test involved allocating
> 12 Megabytes from the reclaim paths when __PF_MEMALLOC is set. This is enough
> to exhaust the reserves.
> 


WARNING: multiple messages have this Message-ID (diff)
From: Peter Zijlstra <peterz@infradead.org>
To: Christoph Lameter <clameter@sgi.com>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [RFC 0/3] Recursive reclaim (on __PF_MEMALLOC)
Date: Tue, 14 Aug 2007 16:36:43 +0200	[thread overview]
Message-ID: <1187102203.6114.2.camel@twins> (raw)
In-Reply-To: <20070814142103.204771292@sgi.com>

On Tue, 2007-08-14 at 07:21 -0700, Christoph Lameter wrote:
> The following patchset implements recursive reclaim. Recursive reclaim
> is necessary if we run out of memory in the writeout patch from reclaim.
> 
> This is f.e. important for stacked filesystems or anything that does
> complicated processing in the writeout path.
> 
> Recursive reclaim works because it limits itself to only reclaim pages
> that do not require writeout. It will only remove clean pages from the LRU.
> The dirty throttling of the VM during regular reclaim insures that the amount
> of dirty pages is limited. 

No it doesn't. All memory can be tied up by anonymous pages - who are
dirty by definition and are not clamped by the dirty limit.

> If recursive reclaim causes too many clean pages
> to be removed then regular reclaim will throttle all processes until the
> dirty ratio is restored. This means that the amount of memory that can
> be reclaimed via recursive reclaim is limited to clean memory. The default
> ratio is 10%. This means that recursive reclaim can reclaim 90% of memory
> before failing. Reclaiming excessive amounts of clean pages may have a
> significant performance impact because this means that executable pages
> will be removed. However, it ensures that we will no longer fail in the
> writeout path.
> 
> A patch is included to test this functionality. The test involved allocating
> 12 Megabytes from the reclaim paths when __PF_MEMALLOC is set. This is enough
> to exhaust the reserves.
> 

--
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>

  parent reply	other threads:[~2007-08-14 14:37 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-14 14:21 [RFC 0/3] Recursive reclaim (on __PF_MEMALLOC) Christoph Lameter
2007-08-14 14:21 ` Christoph Lameter
2007-08-14 14:21 ` [RFC 1/3] Allow reclaim via __GFP_NOMEMALLOC reclaim Christoph Lameter
2007-08-14 14:21   ` Christoph Lameter
2007-08-14 14:21 ` [RFC 2/3] Use NOMEMALLOC reclaim to allow reclaim if PF_MEMALLOC is set Christoph Lameter
2007-08-14 14:21   ` Christoph Lameter
2007-08-14 14:21 ` [RFC 3/3] Test code for PF_MEMALLOC reclaim Christoph Lameter
2007-08-14 14:21   ` Christoph Lameter
2007-08-14 14:36 ` Peter Zijlstra [this message]
2007-08-14 14:36   ` [RFC 0/3] Recursive reclaim (on __PF_MEMALLOC) Peter Zijlstra
2007-08-14 15:29   ` Christoph Lameter
2007-08-14 15:29     ` Christoph Lameter
2007-08-14 19:32     ` Peter Zijlstra
2007-08-14 19:32       ` Peter Zijlstra
2007-08-14 19:41       ` Christoph Lameter
2007-08-14 19:41         ` Christoph Lameter
2007-08-15 12:22 ` Nick Piggin
2007-08-15 12:22   ` Nick Piggin
2007-08-15 13:12   ` Peter Zijlstra
2007-08-15 14:15     ` Andi Kleen
2007-08-15 14:15       ` Andi Kleen
2007-08-15 13:55       ` Peter Zijlstra
2007-08-15 14:34         ` Andi Kleen
2007-08-15 14:34           ` Andi Kleen
2007-08-15 20:32         ` Christoph Lameter
2007-08-15 20:32           ` Christoph Lameter
2007-08-15 20:29     ` Christoph Lameter
2007-08-15 20:29       ` Christoph Lameter
2007-08-16  3:29     ` Nick Piggin
2007-08-16  3:29       ` Nick Piggin
2007-08-16 20:27       ` Christoph Lameter
2007-08-16 20:27         ` Christoph Lameter
2007-08-20  3:51       ` Peter Zijlstra
2007-08-20 19:15         ` Christoph Lameter
2007-08-20 19:15           ` Christoph Lameter
2007-08-21  0:32           ` Nick Piggin
2007-08-21  0:32             ` Nick Piggin
2007-08-21  0:28         ` Nick Piggin
2007-08-21  0:28           ` Nick Piggin
2007-08-21 15:29           ` Peter Zijlstra
2007-08-23  3:02             ` Nick Piggin
2007-08-23  3:02               ` Nick Piggin
2007-09-12 22:39           ` Christoph Lameter
2007-09-12 22:39             ` Christoph Lameter
2007-09-05  9:20 ` Daniel Phillips
2007-09-05  9:20   ` Daniel Phillips
2007-09-05 10:42   ` Christoph Lameter
2007-09-05 10:42     ` Christoph Lameter
2007-09-05 11:42     ` Nick Piggin
2007-09-05 11:42       ` Nick Piggin
2007-09-05 12:14       ` Christoph Lameter
2007-09-05 12:14         ` Christoph Lameter
2007-09-05 12:19         ` Nick Piggin
2007-09-05 12:19           ` Nick Piggin
2007-09-10 19:29           ` Christoph Lameter
2007-09-10 19:29             ` Christoph Lameter
2007-09-10 19:37             ` Peter Zijlstra
2007-09-10 19:41               ` Christoph Lameter
2007-09-10 19:41                 ` Christoph Lameter
2007-09-10 19:55                 ` Peter Zijlstra
2007-09-10 20:17                   ` Christoph Lameter
2007-09-10 20:17                     ` Christoph Lameter
2007-09-10 20:48                     ` Peter Zijlstra
2007-09-11  7:41             ` Nick Piggin
2007-09-11  7:41               ` Nick Piggin
2007-09-12 10:52         ` Peter Zijlstra
2007-09-12 22:47           ` Christoph Lameter
2007-09-12 22:47             ` Christoph Lameter
2007-09-13  8:19             ` Peter Zijlstra
2007-09-13 18:32               ` Christoph Lameter
2007-09-13 18:32                 ` Christoph Lameter
2007-09-13 19:24                 ` Peter Zijlstra
2007-09-13 19:24                   ` Peter Zijlstra
2007-09-05 16:16     ` Daniel Phillips
2007-09-05 16:16       ` Daniel Phillips
2007-09-08  5:12       ` Mike Snitzer
2007-09-08  5:12         ` Mike Snitzer
2007-09-18  0:28         ` Daniel Phillips
2007-09-18  0:28           ` Daniel Phillips
2007-09-18  3:27           ` Mike Snitzer
2007-09-18  3:27             ` Mike Snitzer
2007-09-18  5:37             ` Daniel Phillips
2007-09-18  9:30             ` Peter Zijlstra
2007-09-18  9:30               ` Peter Zijlstra
     [not found]             ` <200709172211.26493.phillips@phunq.net>
2007-09-18  8:11               ` Wouter Verhelst
2007-09-18  8:11                 ` Wouter Verhelst
2007-09-18  9:58               ` Peter Zijlstra
2007-09-18  9:58                 ` Peter Zijlstra
2007-09-18 16:56                 ` Daniel Phillips
2007-09-18 16:56                   ` Daniel Phillips
2007-09-18 19:16                   ` Peter Zijlstra
2007-09-18 19:16                     ` Peter Zijlstra
2007-09-18 18:40             ` Daniel Phillips
2007-09-18 20:13               ` Mike Snitzer
2007-09-10 19:25       ` Christoph Lameter
2007-09-10 19:25         ` Christoph Lameter
2007-09-10 19:55         ` Peter Zijlstra
2007-09-10 20:22           ` Christoph Lameter
2007-09-10 20:22             ` Christoph Lameter
2007-09-10 20:48             ` Peter Zijlstra
2007-10-26 17:44               ` Pavel Machek
2007-10-26 17:44                 ` Pavel Machek
2007-10-26 17:55                 ` Christoph Lameter
2007-10-26 17:55                   ` Christoph Lameter
2007-10-27 22:58                   ` Daniel Phillips
2007-10-27 22:58                     ` Daniel Phillips
2007-10-27 23:08                 ` Daniel Phillips
2007-10-27 23:08                   ` Daniel Phillips

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=1187102203.6114.2.camel@twins \
    --to=peterz@infradead.org \
    --cc=clameter@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --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 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.