From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751821Ab0HVAmq (ORCPT ); Sat, 21 Aug 2010 20:42:46 -0400 Received: from mga02.intel.com ([134.134.136.20]:33918 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751716Ab0HVAmo (ORCPT ); Sat, 21 Aug 2010 20:42:44 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.56,249,1280732400"; d="scan'208";a="547495325" Date: Sun, 22 Aug 2010 08:42:32 +0800 From: Wu Fengguang To: Michal Hocko Cc: linux-mm@kvack.org, Andrew Morton , Andi Kleen , Haicheng Li , Christoph Lameter , linux-kernel@vger.kernel.org Subject: Re: [PATCH] Make is_mem_section_removable more conformable with offlining code Message-ID: <20100822004232.GA11007@localhost> References: <20100820141400.GD4636@tiehlicka.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100820141400.GD4636@tiehlicka.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 Hi Michal, It helps to explain in changelog/code - in what situation a ZONE_MOVABLE will contain !MIGRATE_MOVABLE pages? And why the MIGRATE_MOVABLE test is still necessary given the ZONE_MOVABLE check? - why do you think free pages are not removeable? Simply to cater for the set_migratetype_isolate() logic, or there are more fundamental reasons? Thanks, Fengguang On Fri, Aug 20, 2010 at 04:14:00PM +0200, Michal Hocko wrote: > Hi, > what do you think about the patch below? > > >From b983695b92b5be58f31c719fada1d3245f7b6768 Mon Sep 17 00:00:00 2001 > From: Michal Hocko > Date: Fri, 20 Aug 2010 15:39:16 +0200 > Subject: [PATCH] Make is_mem_section_removable more conformable with offlining code > > Currently is_mem_section_removable checks whether each pageblock from > the given pfn range is of MIGRATE_MOVABLE type or if it is free. If both > are false then the range is considered non removable. > > On the other hand, offlining code (more specifically > set_migratetype_isolate) doesn't care whether a page is free and instead > it just checks the migrate type of the page and whether the page's zone > is movable. > > This can lead into a situation when a node is marked as removable even > though all pages are neither MIGRATE_MOVABLE nor the zone is > ZONE_MOVABLE. > > Also we can mark a node as not removable just because a pageblock is > MIGRATE_RESERVE and not free (and this situation is much more probable). > --- > mm/memory_hotplug.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index a4cfcdc..da20568 100644 > --- a/mm/memory_hotplug.c > +++ b/mm/memory_hotplug.c > @@ -611,10 +611,10 @@ int is_mem_section_removable(unsigned long start_pfn, unsigned long nr_pages) > type = get_pageblock_migratetype(page); > > /* > - * A pageblock containing MOVABLE or free pages is considered > - * removable > + * A pageblock containing MOVABLE or page from movable > + * zone are considered removable > */ > - if (type != MIGRATE_MOVABLE && !pageblock_free(page)) > + if (type != MIGRATE_MOVABLE && zone_idx(page) != ZONE_MOVABLE) > return 0; > > /* > -- > 1.7.1 > > > -- > Michal Hocko > L3 team > SUSE LINUX s.r.o. > Lihovarska 1060/12 > 190 00 Praha 9 > Czech Republic > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@kvack.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: email@kvack.org