Re: Next April 28: boot failure on PowerPC with SLQB

Nick Piggin
2009-04-30T11:26:24Z

On Thu, Apr 30, 2009 at 02:20:29PM +0300, Pekka Enberg wrote:
> On Thu, 2009-04-30 at 13:18 +0200, Nick Piggin wrote:
> > OK thanks. So I think we have 2 problems. One with MAX_ORDER <= 9
> > that is fixed by the previous patch, and another which is probably
> > due to having no memory on node 0 which I will take another look
> > at now.
> >
> > We can merge the previous patch now, though.
>
> Hmm, I'll bet this BUG_ON triggers for Stephen.
>
> diff --git a/mm/slqb.c b/mm/slqb.c
> index a651843..e4b3859 100644
> --- a/mm/slqb.c
> +++ b/mm/slqb.c
> @@ -1391,6 +1391,7 @@ static noinline void *__slab_alloc_page(struct kmem_cache *s,
> struct kmem_cache_node *n;
>
> n = s->node_slab[slqb_page_to_nid(page)];
> + BUG_ON(!n);
> l = &n->list;
> page->list = l;

Yes I'm betting it does, but I can't see why it should. CPU0 should
have node_slab allocated for node 1 if node 1 has memory. And
conversely, slqb_page_to_nid(page) should never evaluate to 0 if
node 0 has no memory online.