From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wu Fengguang Subject: Re: [PATCH 0/5] [RFC] transfer ASYNC vmscan writeback IO to the flusher threads Date: Fri, 30 Jul 2010 13:34:06 +0800 Message-ID: <20100730053406.GC8811@localhost> References: <20100729115142.102255590@intel.com> <20100729160947.GE12690@quack.suse.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Andrew Morton , LKML , "linux-fsdevel@vger.kernel.org" , "linux-mm@kvack.org" , Dave Chinner , Chris Mason , Nick Piggin , Rik van Riel , Johannes Weiner , Christoph Hellwig , KAMEZAWA Hiroyuki , KOSAKI Motohiro , Andrea Arcangeli , Mel Gorman , Minchan Kim To: Jan Kara Return-path: Received: from mga02.intel.com ([134.134.136.20]:36475 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753498Ab0G3FeL (ORCPT ); Fri, 30 Jul 2010 01:34:11 -0400 Content-Disposition: inline In-Reply-To: <20100729160947.GE12690@quack.suse.cz> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Fri, Jul 30, 2010 at 12:09:47AM +0800, Jan Kara wrote: > On Thu 29-07-10 19:51:42, Wu Fengguang wrote: > > Andrew, > > > > It's possible to transfer ASYNC vmscan writeback IOs to the flusher threads. > > This simple patchset shows the basic idea. Since it's a big behavior change, > > there are inevitably lots of details to sort out. I don't know where it will > > go after tests and discussions, so the patches are intentionally kept simple. > > > > sync livelock avoidance (need more to be complete, but this is minimal required for the last two patches) > > [PATCH 1/5] writeback: introduce wbc.for_sync to cover the two sync stages > > [PATCH 2/5] writeback: stop periodic/background work on seeing sync works > > [PATCH 3/5] writeback: prevent sync livelock with the sync_after timestamp > Well, essentially any WB_SYNC_NONE writeback is still livelockable if you > just grow a file constantly. So your changes are a step in the right > direction but won't fix the issue completely. Right. We have complementary patches to prevent livelocks both inside file and among files. > But what we could do to fix > the issue completely would be to just set wbc->nr_to_write to LONG_MAX > before writing inode for sync use my livelock avoidance using page-tagging > for this case (it wouldn't have the possible performance issue because we > are going to write all the inode anyway). Yeah your patches are good to avoid livelocking in one single busy file. I didn't forgot them :) > I can write the patch but frankly there are so many patches floating > around that I'm not sure what I should base it on... Me confused too. It may take some time to quiet down.. Thanks, Fengguang