Re: [BUG] sched: big numa dynamic sched domain memory corruption




* Paul Jackson <pj@xxxxxxx> wrote:

@@ -5675,12 +5675,13 @@ void build_sched_domains(const cpumask_t
int group;
struct sched_domain *sd = NULL, *p;
cpumask_t nodemask = node_to_cpumask(cpu_to_node(i));
+ int cpus_per_node = cpus_weight(nodemask);

cpus_and(nodemask, nodemask, *cpu_map);

#ifdef CONFIG_NUMA
- if (cpus_weight(*cpu_map)
- > SD_NODES_PER_DOMAIN*cpus_weight(nodemask)) {
+ if (cpus_weight(cpu_online_map)
+ > SD_NODES_PER_DOMAIN*cpus_per_node) {
if (!sched_group_allnodes) {
sched_group_allnodes
= kmalloc(sizeof(struct sched_group)

even if the bug is not fully understood in time, i think we should queue
the patch above for v2.6.18. (with the small nit that you should put the
new cpus_per_node variable under CONFIG_NUMA too, to avoid a compiler
warning)

Acked-by: Ingo Molnar <mingo@xxxxxxx>

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



Relevant Pages