[Top] [All Lists]

Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering

To: Johannes Weiner <jweiner@xxxxxxxxxx>
Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering
From: Rik van Riel <riel@xxxxxxxxxx>
Date: Mon, 11 Jul 2011 15:09:24 -0400
Cc: Dave Chinner <david@xxxxxxxxxxxxx>, Wu Fengguang <fengguang.wu@xxxxxxxxx>, Christoph Hellwig <hch@xxxxxxxxxxxxx>, Mel Gorman <mgorman@xxxxxxx>, "xfs@xxxxxxxxxxx" <xfs@xxxxxxxxxxx>, "linux-mm@xxxxxxxxx" <linux-mm@xxxxxxxxx>
In-reply-to: <20110711172050.GA2849@xxxxxxxxxx>
References: <20110629140109.003209430@xxxxxxxxxxxxxxxxxxxxxx> <20110629140336.950805096@xxxxxxxxxxxxxxxxxxxxxx> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@xxxxxxxxxxxxx> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> <20110706151229.GA1998@xxxxxxxxxx> <20110708095456.GI1026@dastard> <20110711172050.GA2849@xxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20110428 Fedora/3.1.10-1.fc15 Lightning/1.0b3pre Thunderbird/3.1.10
On 07/11/2011 01:20 PM, Johannes Weiner wrote:

I CC'd Rik for reclaim-wizardry.  But if I am not completly off with
this there is a chance that the change that let the active list grow
unscanned may actually have contributed to this single-page writing
problem becoming worse?

Yes, the patch probably contributed.

However, the patch does help protect the working set in
the page cache from streaming IO, so on balance I believe
we need to keep this change.

What it changes is that the size of the inactive file list
can no longer grow unbounded, keeping it a little smaller
than it could have grown in the past.

commit 56e49d218890f49b0057710a4b6fef31f5ffbfec
Author: Rik van Riel<riel@xxxxxxxxxx>
Date:   Tue Jun 16 15:32:28 2009 -0700

     vmscan: evict use-once pages first

     When the file LRU lists are dominated by streaming IO pages, evict those
     pages first, before considering evicting other pages.

     This should be safe from deadlocks or performance problems
     because only three things can happen to an inactive file page:

     1) referenced twice and promoted to the active list
     2) evicted by the pageout code
     3) under IO, after which it will get evicted or promoted

     The pages freed in this way can either be reused for streaming IO, or
     allocated for something else.  If the pages are used for streaming IO,
     this pageout pattern continues.  Otherwise, we will fall back to the
     normal pageout pattern.

     Signed-off-by: Rik van Riel<riel@xxxxxxxxxx>
     Reported-by: Elladan<elladan@xxxxxxxxxx>
     Cc: KOSAKI Motohiro<kosaki.motohiro@xxxxxxxxxxxxxx>
     Cc: Peter Zijlstra<peterz@xxxxxxxxxxxxx>
     Cc: Lee Schermerhorn<lee.schermerhorn@xxxxxx>
     Acked-by: Johannes Weiner<hannes@xxxxxxxxxxx>
     Signed-off-by: Andrew Morton<akpm@xxxxxxxxxxxxxxxxxxxx>
     Signed-off-by: Linus Torvalds<torvalds@xxxxxxxxxxxxxxxxxxxx>

All rights reversed

<Prev in Thread] Current Thread [Next in Thread>