[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1290597498.2072.458.camel@laptop>
Date: Wed, 24 Nov 2010 12:18:18 +0100
From: Peter Zijlstra <a.p.zijlstra@...llo.nl>
To: Wu Fengguang <fengguang.wu@...el.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>, Jan Kara <jack@...e.cz>,
Christoph Hellwig <hch@....de>,
Dave Chinner <david@...morbit.com>,
Theodore Ts'o <tytso@....edu>,
Chris Mason <chris.mason@...cle.com>,
Mel Gorman <mel@....ul.ie>, Rik van Riel <riel@...hat.com>,
KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>,
linux-mm <linux-mm@...ck.org>, linux-fsdevel@...r.kernel.org,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 10/13] writeback: make reasonable gap between the
dirty/background thresholds
On Wed, 2010-11-17 at 12:27 +0800, Wu Fengguang wrote:
> plain text document attachment
> (writeback-fix-oversize-background-thresh.patch)
> The change is virtually a no-op for the majority users that use the
> default 10/20 background/dirty ratios. For others don't know why they
> are setting background ratio close enough to dirty ratio. Someone must
> set background ratio equal to dirty ratio, but no one seems to notice or
> complain that it's then silently halved under the hood..
>
> Signed-off-by: Wu Fengguang <fengguang.wu@...el.com>
> ---
> mm/page-writeback.c | 11 +++++++++--
> 1 file changed, 9 insertions(+), 2 deletions(-)
>
> --- linux-next.orig/mm/page-writeback.c 2010-11-15 13:12:50.000000000 +0800
> +++ linux-next/mm/page-writeback.c 2010-11-15 13:13:42.000000000 +0800
> @@ -403,8 +403,15 @@ void global_dirty_limits(unsigned long *
> else
> background = (dirty_background_ratio * available_memory) / 100;
>
> - if (background >= dirty)
> - background = dirty / 2;
> + /*
> + * Ensure at least 1/4 gap between background and dirty thresholds, so
> + * that when dirty throttling starts at (background + dirty)/2, it's at
> + * the entrance of bdi soft throttle threshold, so as to avoid being
> + * hard throttled.
> + */
> + if (background > dirty - dirty * 2 / BDI_SOFT_DIRTY_LIMIT)
> + background = dirty - dirty * 2 / BDI_SOFT_DIRTY_LIMIT;
> +
> tsk = current;
> if (tsk->flags & PF_LESS_THROTTLE || rt_task(tsk)) {
> background += background / 4;
Hrm,.. the alternative is to return -ERANGE or somesuch when people try
to write nonsensical values.
I'm not sure what's best, guessing at what the user did mean to do or
forcing him to actually think.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists