[PATCH 2.6.17-rc1-mm1] sched_domain-handle-kmalloc-failure-fix

From: Lee Schermerhorn
Date: Thu Apr 06 2006 - 15:57:39 EST


[PATCH] sched_domain-handle-kmalloc-failure-fix

2.6.17-rc1-mm1 hangs during boot on HP rx8620 and dl585 -- both 4 node
NUMA platforms. Problem is in build_sched_domains() setting up the
sched_group_nodes[] lists, resulting from patch:
sched_domain-handle-kmalloc-failure.patch

The referenced patch does not propagate the "next" pointer from the head
of the list, resulting in a loop between the last 2 groups in the list.
This causes a tight loop/hang in init_numa_sched_groups_power() because
'sg->next' never == 'group_head' when you have > 2 nodes.

This patch seems to fix the problem.

Signed-off-by: Lee Schermerhorn <lee.schermerhorn@xxxxxx>

Index: linux-2.6.17-rc1-mm1/kernel/sched.c
===================================================================
--- linux-2.6.17-rc1-mm1.orig/kernel/sched.c 2006-04-06 15:18:32.000000000 -0400
+++ linux-2.6.17-rc1-mm1/kernel/sched.c 2006-04-06 15:20:49.000000000 -0400
@@ -6360,7 +6360,7 @@ static int build_sched_domains(const cpu
}
sg->cpu_power = 0;
sg->cpumask = tmp;
- sg->next = prev;
+ sg->next = prev->next;
cpus_or(covered, covered, tmp);
prev->next = sg;
prev = sg;


-
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/