Re: [Stable-review] [36/55] [PARISC] slub: fix panic withDISCONTIGMEM

From: David Rientjes
Date: Tue May 03 2011 - 18:46:29 EST


On Mon, 2 May 2011, Ben Hutchings wrote:

> > From: James Bottomley <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>
> >
> > commit 4a5fa3590f09999f6db41bc386bce40848fa9f63 upstream.
> >
> > Slub makes assumptions about page_to_nid() which are violated by
> > DISCONTIGMEM and !NUMA. This violation results in a panic because
> > page_to_nid() can be non-zero for pages in the discontiguous ranges and
> > this leads to a null return by get_node(). The assertion by the
> > maintainer is that DISCONTIGMEM should only be allowed when NUMA is also
> > defined. However, at least six architectures: alpha, ia64, m32r, m68k,
> > mips, parisc violate this. The panic is a regression against slab, so
> > just mark slub broken in the problem configuration to prevent users
> > reporting these panics.
>
> This stable series also included the patches:
>
> commit 6a682f634ba9615d3498d1e20a23e9d4fcb39f16
> Author: David Rientjes <rientjes@xxxxxxxxxx>
> Date: Wed Apr 20 19:27:13 2011 -0700
>
> set memory ranges in N_NORMAL_MEMORY when onlined
>
> commit d9b41e0b54fd7e164daf1e9c539c1070398aa02e upstream.
>
> commit 8858587af25efc06d5cce42676786b3d7a9160f2
> Author: Michael Schmitz <schmitzmic@xxxxxxxxxxxxxx>
> Date: Tue Apr 26 14:51:53 2011 +1200
>
> m68k/mm: Set all online nodes in N_NORMAL_MEMORY
>
> commit 4aac0b4815ba592052758f4b468f253d383dc9d6 upstream.
>
> which look like they're supposed to make slub work on these two
> architectures (parisc and m68k). Do they? If not, do they fix a
> different problem?
>

SLUB relies heavily on N_NORMAL_MEMORY, so these two patches fix that
allocator but the problem is actually not just isolated to that subsystem;
it fixes an issue with anything that uses N_NORMAL_MEMORY.

The former patch sets the nodes correctly for parisc and Michael's patch
sets the nodes correctly for m68k, so it's the same fix for two different
previously-broken architectures.
--
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/