From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wu Fengguang Subject: Re: [PATCH 1/2] writeback: Improve busyloop prevention Date: Thu, 3 Nov 2011 01:25:56 +0800 Message-ID: <20111102172556.GA26769@localhost> References: <20111018143504.GA17818@localhost> <20111019115630.GA22266@quack.suse.cz> <20111020120909.GA8193@localhost> <20111020123300.GA12317@localhost> <20111020133938.GA18058@localhost> <20111020222616.GA20542@quack.suse.cz> <20111027063133.GA10146@localhost> <20111027203104.GB4527@quack.suse.cz> <20111101134231.GA31718@localhost> <20111101215300.GC18701@quack.suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: "linux-fsdevel@vger.kernel.org" , Christoph Hellwig , Dave Chinner To: Jan Kara Return-path: Received: from mga14.intel.com ([143.182.124.37]:24935 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750773Ab1KBRZ7 (ORCPT ); Wed, 2 Nov 2011 13:25:59 -0400 Content-Disposition: inline In-Reply-To: <20111101215300.GC18701@quack.suse.cz> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: > > > I did some calculations. Default journal size for a filesystem of your > > > size is 128 MB which allows recording of around 128 GB of data. So your > > > test probably didn't hit the point where the journal is recycled yet. An > > > easy way to make sure journal gets recycled is to set its size to a lower > > > value when creating the filesystem by > > > mke2fs -J size=8 > > > > I tried the "-J size=8" and get similar interesting results for > > ext3/4, before/after this change: > > > > if (work->for_kupdate) { > > oldest_jif = jiffies - > > msecs_to_jiffies(dirty_expire_interval * 10); > > - work->older_than_this = &oldest_jif; > > - } > > + } else if (work->for_background) > > + oldest_jif = jiffies; > > > > So I only attach the graphs for one case: > > > > ext4-1dd-4k-8p-2941M-1000M:10-3.1.0-ioless-full-next-20111025+ > > > > Two of the graphs are very interesting. balance_dirty_pages-pause.png > > shows increasingly large negative pause times, which indicates large > > delays inside some ext4's routines. > Likely we are hanging waiting for transaction start. 8 MB journal puts > rather big pressure on journal space so we end up waiting on kjournald a > lot. But I'm not sure why wait times would increase on large scale - with > ext4 it's harder to estimate used journal space because it uses extents so > the amount of metadata written depends on fragmentation. If you could post > ext3 graphs, maybe I could make some sense from it... Oops it's me that messed it up again -- two chunks were lost during when rebasing the patchset which leads to the misbehavior -- big sorry!