From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754802Ab0CIQJs (ORCPT ); Tue, 9 Mar 2010 11:09:48 -0500 Received: from nlpi129.sbcis.sbc.com ([207.115.36.143]:36992 "EHLO nlpi129.prodigy.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750964Ab0CIQJq (ORCPT ); Tue, 9 Mar 2010 11:09:46 -0500 Date: Tue, 9 Mar 2010 10:09:11 -0600 (CST) From: Christoph Lameter X-X-Sender: cl@router.home To: Christian Ehrhardt cc: Mel Gorman , linux-mm@kvack.org, Nick Piggin , Chris Mason , Jens Axboe , linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/3] page-allocator: Under memory pressure, wait on pressure to relieve instead of congestion In-Reply-To: <4B966F93.9060207@linux.vnet.ibm.com> Message-ID: References: <1268048904-19397-1-git-send-email-mel@csn.ul.ie> <1268048904-19397-2-git-send-email-mel@csn.ul.ie> <4B966F93.9060207@linux.vnet.ibm.com> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 9 Mar 2010, Christian Ehrhardt wrote: > > What happens if memory becomes available in another zone? Lets say we are > > waiting on HIGHMEM and memory in ZONE_NORMAL becomes available? > > Do you mean the same as Nick asked or another aspect of it? > citation: > "I mean the other way around. If that zone's watermarks are not met, then why > shouldn't it be woken up by other zones reaching their watermarks." Just saw that exchange. Yes it is similar. Mel only thought about NUMA but the situation can also occur in !NUMA because multiple zones do not require NUMA. If a process goes to sleep on an allocation that has a preferred zone of HIGHMEM then other processors may free up memory in ZONE_DMA and ZONE_NORMAL and therefore memory may become available but the process will continue to sleep. The wait structure needs to be placed in the pgdat structure to make it node specific. But then an overallocated node may stall processes. If that node is full of unreclaimable memory then the process may never wake up?