Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757471Ab1DMXb1 (ORCPT ); Wed, 13 Apr 2011 19:31:27 -0400 Received: from mga09.intel.com ([134.134.136.24]:49454 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756705Ab1DMXb0 (ORCPT ); Wed, 13 Apr 2011 19:31:26 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.64,207,1301900400"; d="scan'208";a="733035082" Date: Thu, 14 Apr 2011 07:31:22 +0800 From: Wu Fengguang To: Jan Kara Cc: Andrew Morton , Peter Zijlstra , Richard Kennedy , Hugh Dickins , Rik van Riel , Dave Chinner , LKML , Linux Memory Management List , "linux-fsdevel@vger.kernel.org" Subject: Re: [PATCH 4/4] writeback: reduce per-bdi dirty threshold ramp up time Message-ID: <20110413233122.GA6097@localhost> References: <20110413085937.981293444@intel.com> <20110413090415.763161169@intel.com> <20110413220444.GF4648@quack.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110413220444.GF4648@quack.suse.cz> User-Agent: Mutt/1.5.20 (2009-06-14) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3019 Lines: 72 On Thu, Apr 14, 2011 at 06:04:44AM +0800, Jan Kara wrote: > On Wed 13-04-11 16:59:41, Wu Fengguang wrote: > > Reduce the dampening for the control system, yielding faster > > convergence. The change is a bit conservative, as smaller values may > > lead to noticeable bdi threshold fluctuates in low memory JBOD setup. > > > > CC: Peter Zijlstra > > CC: Richard Kennedy > > Signed-off-by: Wu Fengguang > Well, I have nothing against this change as such but what I don't like is > that it just changes magical +2 for similarly magical +0. It's clear that The patch tends to make the rampup time a bit more reasonable for common desktops. From 100s to 25s (see below). > this will lead to more rapid updates of proportions of bdi's share of > writeback and thread's share of dirtying but why +0? Why not +1 or -1? So Yes, it will especially be a problem on _small memory_ JBOD setups. Richard actually has requested for a much radical change (decrease by 6) but that looks too much. My team has a 12-disk JBOD with only 6G memory. The memory is pretty small as a server, but it's a real setup and serves well as the reference minimal setup that Linux should be able to run well on. It will sure create more fluctuations, but still is acceptable in my tests. For example, http://www.kernel.org/pub/linux/kernel/people/wfg/writeback/dirty-throttling-v6/10HDD-JBOD-6G/xfs-128dd-1M-16p-5904M-20%25-2.6.38-rc6-dt6+-2011-02-23-19-46/balance_dirty_pages-pages.png > I'd prefer to get some understanding of why do we need to update the > proportion period and why 4-times faster is just the right amount of faster > :) If I remember right you had some numbers for this, didn't you? Even better, I have a graph :) http://www.kernel.org/pub/linux/kernel/people/wfg/writeback/dirty-throttling-v6/vanilla/4G/xfs-1dd-1M-8p-3911M-20%25-2.6.38-rc7+-2011-03-07-21-55/balance_dirty_pages-pages.png It shows that doing 1 dd on a 4G box, it took more than 100s to rampup. The patch will reduce it to 25 seconds for a typical desktop. The disk has 50MB/s throughput. Given a modern HDD or SSD, it will converge more fast. Thanks, Fengguang > > --- > > mm/page-writeback.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > --- linux-next.orig/mm/page-writeback.c 2011-03-02 14:52:19.000000000 +0800 > > +++ linux-next/mm/page-writeback.c 2011-03-02 15:00:17.000000000 +0800 > > @@ -145,7 +145,7 @@ static int calc_period_shift(void) > > else > > dirty_total = (vm_dirty_ratio * determine_dirtyable_memory()) / > > 100; > > - return 2 + ilog2(dirty_total - 1); > > + return ilog2(dirty_total - 1); > > } > > > > /* > > > > > -- > Jan Kara > SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/