cpu/mem hotplug: enable CPUs online before local memory online
authorminskey guo <[email protected]>
Mon, 24 May 2010 21:32:41 +0000 (14:32 -0700)
committerLinus Torvalds <[email protected]>
Tue, 25 May 2010 15:07:00 +0000 (08:07 -0700)
commitcf23422b9d76215316855253da491d4c9f294372
tree5663d2519d83d830d24dffdf2571d58d3e55d3f6
parent8b25c6d2231b978ccce9c401e771932bde79aa9f
cpu/mem hotplug: enable CPUs online before local memory online

Enable users to online CPUs even if the CPUs belongs to a numa node which
doesn't have onlined local memory.

The zonlists(pg_data_t.node_zonelists[]) of a numa node are created either
in system boot/init period, or at the time of local memory online.  For a
numa node without onlined local memory, its zonelists are not initialized
at present.  As a result, any memory allocation operations executed by
CPUs within this node will fail.  In fact, an out-of-memory error is
triggered when attempt to online CPUs before memory comes to online.

This patch tries to create zonelists for such numa nodes, so that the
memory allocation for this node can be fallback'ed to other nodes.

[[email protected]: remove unneeded export]
[[email protected]: coding-style fixes]
Signed-off-by: minskey guo<[email protected]>
Cc: Minchan Kim <[email protected]>
Cc: Yasunori Goto <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: Christoph Lameter <[email protected]>
Cc: Tejun Heo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/memory_hotplug.h
kernel/cpu.c
mm/memory_hotplug.c