[tip:sched/numa] sched/numa: Allocate 'struct node_queue' on any node for offline nodes

From: tip-bot for David Rientjes
Date: Wed Jun 13 2012 - 09:37:26 EST


Commit-ID: 1f49a99116069a8d9dc6027862277a766c2ef17e
Gitweb: http://git.kernel.org/tip/1f49a99116069a8d9dc6027862277a766c2ef17e
Author: David Rientjes <rientjes@xxxxxxxxxx>
AuthorDate: Tue, 22 May 2012 21:17:56 -0700
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitDate: Wed, 13 Jun 2012 15:25:37 +0200

sched/numa: Allocate 'struct node_queue' on any node for offline nodes

'struct node_queue' must be allocated with NUMA_NO_NODE for nodes
that are not (yet) online, otherwise the page allocator has a
bad zonelist and results in an early crash.

Tested-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Signed-off-by: David Rientjes <rientjes@xxxxxxxxxx>
Cc: linuxppc-dev@xxxxxxxxxxxxxxxx
Cc: Lee Schermerhorn <lee.schermerhorn@xxxxxx>
Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
Link: http://lkml.kernel.org/r/alpine.DEB.2.00.1205222116160.32649@xxxxxxxxxxxxxxxxxxxxxxxxx
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
---
kernel/sched/numa.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/kernel/sched/numa.c b/kernel/sched/numa.c
index 77fa7d4..002f71c 100644
--- a/kernel/sched/numa.c
+++ b/kernel/sched/numa.c
@@ -829,7 +829,8 @@ static __init int numa_init(void)

for_each_node(node) {
struct node_queue *nq = kmalloc_node(sizeof(*nq),
- GFP_KERNEL | __GFP_ZERO, node);
+ GFP_KERNEL | __GFP_ZERO,
+ node_online(node) ? node : NUMA_NO_NODE);
BUG_ON(!nq);

spin_lock_init(&nq->lock);
--
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/