From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail172.messagelabs.com (mail172.messagelabs.com [216.82.254.3]) by kanga.kvack.org (Postfix) with SMTP id D9D426B004D for ; Thu, 11 Jun 2009 22:54:51 -0400 (EDT) Received: from m5.gw.fujitsu.co.jp ([10.0.50.75]) by fgwmail7.fujitsu.co.jp (Fujitsu Gateway) with ESMTP id n5C2uXhC011450 for (envelope-from kamezawa.hiroyu@jp.fujitsu.com); Fri, 12 Jun 2009 11:56:34 +0900 Received: from smail (m5 [127.0.0.1]) by outgoing.m5.gw.fujitsu.co.jp (Postfix) with ESMTP id C48D445DE55 for ; Fri, 12 Jun 2009 11:56:33 +0900 (JST) Received: from s5.gw.fujitsu.co.jp (s5.gw.fujitsu.co.jp [10.0.50.95]) by m5.gw.fujitsu.co.jp (Postfix) with ESMTP id 831DE45DE51 for ; Fri, 12 Jun 2009 11:56:33 +0900 (JST) Received: from s5.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s5.gw.fujitsu.co.jp (Postfix) with ESMTP id DDEA01DB8040 for ; Fri, 12 Jun 2009 11:56:32 +0900 (JST) Received: from m107.s.css.fujitsu.com (m107.s.css.fujitsu.com [10.249.87.107]) by s5.gw.fujitsu.co.jp (Postfix) with ESMTP id 4411A1DB8038 for ; Fri, 12 Jun 2009 11:56:32 +0900 (JST) Date: Fri, 12 Jun 2009 11:55:01 +0900 From: KAMEZAWA Hiroyuki Subject: Re: boot panic with memcg enabled (Was [PATCH 3/4] memcg: don't use bootmem allocator in setup code) Message-Id: <20090612115501.df12a457.kamezawa.hiroyu@jp.fujitsu.com> In-Reply-To: <4A31C258.2050404@cn.fujitsu.com> References: <4A31C258.2050404@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: owner-linux-mm@kvack.org To: Li Zefan Cc: Pekka J Enberg , linux-kernel@vger.kernel.org, mingo@elte.hu, hannes@cmpxchg.org, torvalds@linux-foundation.org, yinghai@kernel.org, Balbir Singh , "linux-mm@kvack.org" List-ID: On Fri, 12 Jun 2009 10:50:00 +0800 Li Zefan wrote: > (This patch should have CCed memcg maitainers) > > My box failed to boot due to initialization failure of page_cgroup, and > it's caused by this patch: > > + page = alloc_pages_node(nid, GFP_NOWAIT | __GFP_ZERO, order); > Oh, I don't know this patch ;( > I added a printk, and found that order == 11 == MAX_ORDER. > maybe possible because this allocates countinous pages of 60%? length of memmap. If __alloc_bootmem_node_nopanic() is not available any more, memcg should be only used under CONFIG_SPARSEMEM. Is that a request from bootmem maintainer ? Thanks, -Kame > Pekka J Enberg wrote: > > From: Yinghai Lu > > > > The bootmem allocator is no longer available for page_cgroup_init() because we > > set up the kernel slab allocator much earlier now. > > > > Cc: Ingo Molnar > > Cc: Johannes Weiner > > Cc: Linus Torvalds > > Signed-off-by: Yinghai Lu > > Signed-off-by: Pekka Enberg > > --- > > mm/page_cgroup.c | 12 ++++++++---- > > 1 files changed, 8 insertions(+), 4 deletions(-) > > > > diff --git a/mm/page_cgroup.c b/mm/page_cgroup.c > > index 791905c..3dd4a90 100644 > > --- a/mm/page_cgroup.c > > +++ b/mm/page_cgroup.c > > @@ -47,6 +47,8 @@ static int __init alloc_node_page_cgroup(int nid) > > struct page_cgroup *base, *pc; > > unsigned long table_size; > > unsigned long start_pfn, nr_pages, index; > > + struct page *page; > > + unsigned int order; > > > > start_pfn = NODE_DATA(nid)->node_start_pfn; > > nr_pages = NODE_DATA(nid)->node_spanned_pages; > > @@ -55,11 +57,13 @@ static int __init alloc_node_page_cgroup(int nid) > > return 0; > > > > table_size = sizeof(struct page_cgroup) * nr_pages; > > - > > - base = __alloc_bootmem_node_nopanic(NODE_DATA(nid), > > - table_size, PAGE_SIZE, __pa(MAX_DMA_ADDRESS)); > > - if (!base) > > + order = get_order(table_size); > > + page = alloc_pages_node(nid, GFP_NOWAIT | __GFP_ZERO, order); > > + if (!page) > > + page = alloc_pages_node(-1, GFP_NOWAIT | __GFP_ZERO, order); > > + if (!page) > > return -ENOMEM; > > + base = page_address(page); > > for (index = 0; index < nr_pages; index++) { > > pc = base + index; > > __init_page_cgroup(pc, start_pfn + index); > > -- 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