From patchwork Thu Feb 5 09:06:17 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: KAMEZAWA Hiroyuki X-Patchwork-Id: 22085 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 26BDCDDE41 for ; Thu, 5 Feb 2009 20:07:42 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758929AbZBEJHk (ORCPT ); Thu, 5 Feb 2009 04:07:40 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1759054AbZBEJHj (ORCPT ); Thu, 5 Feb 2009 04:07:39 -0500 Received: from fgwmail7.fujitsu.co.jp ([192.51.44.37]:60060 "EHLO fgwmail7.fujitsu.co.jp" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758526AbZBEJHf (ORCPT ); Thu, 5 Feb 2009 04:07:35 -0500 Received: from m1.gw.fujitsu.co.jp ([10.0.50.71]) by fgwmail7.fujitsu.co.jp (Fujitsu Gateway) with ESMTP id n1597XEa011952 (envelope-from kamezawa.hiroyu@jp.fujitsu.com); Thu, 5 Feb 2009 18:07:33 +0900 Received: from smail (m1 [127.0.0.1]) by outgoing.m1.gw.fujitsu.co.jp (Postfix) with ESMTP id 13BDD45DD72; Thu, 5 Feb 2009 18:07:33 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (s1.gw.fujitsu.co.jp [10.0.50.91]) by m1.gw.fujitsu.co.jp (Postfix) with ESMTP id E836145DD76; Thu, 5 Feb 2009 18:07:32 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id CC8B41DB8043; Thu, 5 Feb 2009 18:07:32 +0900 (JST) Received: from m107.s.css.fujitsu.com (m107.s.css.fujitsu.com [10.249.87.107]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id A29891DB8044; Thu, 5 Feb 2009 18:07:28 +0900 (JST) Received: from m107.css.fujitsu.com (m107 [127.0.0.1]) by m107.s.css.fujitsu.com (Postfix) with ESMTP id 6BACF670001; Thu, 5 Feb 2009 18:07:28 +0900 (JST) Received: from WIN-WAU6SZB64RR (unknown [10.124.100.143]) by m107.s.css.fujitsu.com (Postfix) with SMTP id D8A192C00B9; Thu, 5 Feb 2009 18:07:27 +0900 (JST) Date: Thu, 5 Feb 2009 18:06:17 +0900 From: KAMEZAWA Hiroyuki To: David Miller Cc: mel@csn.ul.ie, heiko.carstens@de.ibm.com, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, sparclinux@vger.kernel.org Subject: Re: HOLES_IN_ZONE... Message-Id: <20090205180617.8ee3dfb5.kamezawa.hiroyu@jp.fujitsu.com> In-Reply-To: <20090204.222651.26527737.davem@davemloft.net> References: <20090204.222651.26527737.davem@davemloft.net> Organization: FUJITSU Co. LTD. X-Mailer: Sylpheed 2.5.0 (GTK+ 2.10.14; i686-pc-mingw32) Mime-Version: 1.0 Sender: sparclinux-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: sparclinux@vger.kernel.org On Wed, 04 Feb 2009 22:26:51 -0800 (PST) David Miller wrote: > The point of this email is, do I really need to set this thing on > sparc64? I've never seen this check triggered before, it only seems > to have started triggering in 2.6.27 or so but I obviously can't find > anything that would influence something of this nature. > Clarifing my e-mail again..(sorry for bad text.) 1. This is not problem from HOLES_IN_ZONE. 2. Your end_pfn(0x81f7ff)'s memmap is not initialized correctly. 3. It's because 0x81f7ff has memmap but not in early_node_map[]. So, initialzing mem_map() for this end_pfn is necessary. This is my patch. Mel, how do you think ? == A struct page for pfn which is not in early_node_map[] can exist and it's not be initalized. This patch changes early_pfn_to_nid() to return -1 and if -1 returns, initialized mem_map with passed nid. After this patch, the page will be marked as PG_reserved and never freed later. Signed-off-by: KAMEZAWA Hiroyuki --- mm/page_alloc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Index: mmotm-2.6.29-Feb03/mm/page_alloc.c =================================================================== --- mmotm-2.6.29-Feb03.orig/mm/page_alloc.c +++ mmotm-2.6.29-Feb03/mm/page_alloc.c @@ -2618,6 +2618,7 @@ void __meminit memmap_init_zone(unsigned unsigned long end_pfn = start_pfn + size; unsigned long pfn; struct zone *z; + int tmp; if (highest_memmap_pfn < end_pfn - 1) highest_memmap_pfn = end_pfn - 1; @@ -2632,7 +2633,8 @@ void __meminit memmap_init_zone(unsigned if (context == MEMMAP_EARLY) { if (!early_pfn_valid(pfn)) continue; - if (!early_pfn_in_nid(pfn, nid)) + tmp = early_pfn_in_nid(pfn, nid); + if (tmp > -1 && tmp != nid) continue; } page = pfn_to_page(pfn); @@ -2999,8 +3001,9 @@ int __meminit early_pfn_to_nid(unsigned return early_node_map[i].nid; } - return 0; + return -1; } + #endif /* CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID */ /* Basic iterator support to walk early_node_map[] */