Re: [memcg BUG ?] failed to boot on IA64 with CONFIG_DISCONTIGMEM=y

From: Andrew Morton
Date: Sun Dec 07 2008 - 03:31:59 EST


On Fri, 5 Dec 2008 12:24:58 +0900 KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:

> On Fri, 5 Dec 2008 12:20:24 +0900
> KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
>
> > On Fri, 05 Dec 2008 11:09:29 +0800
> > Li Zefan <lizf@xxxxxxxxxxxxxx> wrote:
> >
> > > Kernel version: 2.6.28-rc7
> > > Arch: IA64
> > > Memory model: DISCONTIGMEM
> > >
> > > ELILO boot: Uncompressing Linux... done
> > > Loading file initrd-2.6.28-rc7-lizf.img...done
> > > (frozen)
> > >
> > >
> > > Booted successfully with cgroup_disable=memory, here is the dmesg:
> > >
> >
> > thx, will dig into...Maybe you're the first person using DISCONTIGMEM with
> > empty_node after page_cgroup-alloc-at-boot.
> >
> > How about this ?
>
> Ahhh..sorry.
>
> this one please.
> ==
>
> From: kamezawa.hiroyu@xxxxxxxxxxxxxx
>
> page_cgroup should ignore empty-nodes.
>
> Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx>
>
> ---
> mm/page_cgroup.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> Index: mmotm-2.6.28-Dec03/mm/page_cgroup.c
> ===================================================================
> --- mmotm-2.6.28-Dec03.orig/mm/page_cgroup.c
> +++ mmotm-2.6.28-Dec03/mm/page_cgroup.c
> @@ -51,6 +51,9 @@ static int __init alloc_node_page_cgroup
> start_pfn = NODE_DATA(nid)->node_start_pfn;
> nr_pages = NODE_DATA(nid)->node_spanned_pages;
>
> + if (!nr_pages)
> + return 0;
> +
> table_size = sizeof(struct page_cgroup) * nr_pages;
>
> base = __alloc_bootmem_node_nopanic(NODE_DATA(nid),

Why did the kernel fail?

Either __alloc_bootmem_node_nopanic() succeeds, in which case the code
looks like it handles that OK.

Or __alloc_bootmem_node_nopanic() fails this zero-sized allocation, and
the code attempts to handle that, but fails to do so, which might be a
bug, and the above patch just papers over it.

Of course, a full description of the problem will clear all this up.
Better changelogs, please.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/