Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757814Ab0FOOAs (ORCPT ); Tue, 15 Jun 2010 10:00:48 -0400 Received: from mx1.redhat.com ([209.132.183.28]:11599 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757733Ab0FOOAq (ORCPT ); Tue, 15 Jun 2010 10:00:46 -0400 Date: Tue, 15 Jun 2010 16:00:11 +0200 From: Andrea Arcangeli To: Mel Gorman Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Dave Chinner , Chris Mason , Nick Piggin , Rik van Riel Subject: Re: [RFC PATCH 0/6] Do not call ->writepage[s] from direct reclaim and use a_ops->writepages() where possible Message-ID: <20100615140011.GD28052@random.random> References: <1275987745-21708-1-git-send-email-mel@csn.ul.ie> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1275987745-21708-1-git-send-email-mel@csn.ul.ie> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2422 Lines: 44 Hi Mel, I know lots of people doesn't like direct reclaim, but I personally do and I think if memory pressure is hard enough we should eventually enter direct reclaim full force including ->writepage to avoid false positive OOM failures. Transparent hugepage allocation in fact won't even wakeup kswapd that would be insist to create hugepages and shrink an excessive amount of memory (especially before memory compaction was merged, it shall be tried again but if memory compaction fails in kswapd context, definitely kswapd should immediately stop and not go ahead trying the create hugepages the blind way, kswapd order-awareness the blind way is surely detrimental and pointless). When memory pressure is low, not going into ->writepage may be beneficial from latency prospective too. (but again it depends how much it matters to go in LRU and how beneficial is the cache, to know if it's worth taking clean cache away even if hotter than dirty cache) About the stack overflow did you ever got any stack-debug error? We've plenty of instrumentation and ->writepage definitely runs with irq enable, so if there's any issue, it can't possibly be unnoticed. The worry about stack overflow shall be backed by numbers. You posted lots of latency numbers (surely latency will improve but it's only safe approach on light memory pressure, on heavy pressure it'll early-oom not to call ->writepage, and if cache is very important and system has little ram, not going in lru order may also screw fs-cache performance), but I didn't see any max-stack usage hard numbers, to back the claim that we're going to overflow. In any case I'd prefer to be able to still call ->writepage if memory pressure is high (at some point when priority going down and collecting clean cache doesn't still satisfy the allocation), during allocations in direct reclaim and increase the THREAD_SIZE than doing this purely for stack reasons as the VM will lose reliability if we forbid ->writepage at all in direct reclaim. Throttling on kswapd is possible but it's probably less efficient and on the stack we know exactly which kind of memory we should allocate, kswapd doesn't and it works global. -- 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/