Re: [PATCH] mm: Fix memory hotplug oops from ZONE_MOVABLE changes.

From: Paul Mundt
Date: Fri Jul 20 2007 - 03:31:25 EST


On Fri, Jul 20, 2007 at 04:21:52PM +0900, KAMEZAWA Hiroyuki wrote:
> On Fri, 20 Jul 2007 15:03:42 +0900
> Paul Mundt <lethal@xxxxxxxxxxxx> wrote:
>
> > zone_movable_pfn is presently marked as __initdata and referenced
> > from adjust_zone_range_for_zone_movable(), which in turn is
> > referenced by zone_spanned_pages_in_node(). Both of these are
> > __meminit annotated. When memory hotplug is enabled, this will oops
> > on a hot-add, due to zone_movable_pfn having been freed.
> >
> > __meminitdata annotation gives the desired behaviour.
> >
> > This will only impact platforms that enable both memory hotplug
> > and ARCH_POPULATES_NODE_MAP.
> >
> > Signed-off-by: Paul Mundt <lethal@xxxxxxxxxxxx>
> >
> Thank you for catching.
> It seems that this route will called at node-hotplug.
> We tested node hotplug with our machine but haven't seen this.
>
> The reason is maybe...
> ==
> Currently, our firmware shows *to-be-added* nodes in SRAT at boot and
> ia64 creates empty node against possible node. So, when we add node,
> pgdat is already allocated and free_area_init_core() is not called at hotplug.
> ==
> We need to use dummy firmware to test this route, sorry.
>
Correct, if the pgdat is already allocated on the node you're adding,
then you shouldn't hit this path. I've been toying with the hotplug code
for handoffs of small SRAM blocks (transitioning between exclusive
application usage and letting the kernel manage it as a node), which can
reliably follow this path. It's managed to find a couple of oopses in
this area at least, this not being the first :-)
-
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/