sched: Clean up some ALLNODES code
authorPeter Zijlstra <a.p.zijlstra@chello.nl>
Thu, 7 Apr 2011 12:09:46 +0000 (14:09 +0200)
committerIngo Molnar <mingo@elte.hu>
Mon, 11 Apr 2011 10:58:18 +0000 (12:58 +0200)
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Nick Piggin <npiggin@kernel.dk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Link: http://lkml.kernel.org/r/20110407122942.025636011@chello.nl
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/sched.c

index 72d561fa67b78f1e5cdf493c1405e66a54d6129a..fa10cf73c80c99b3380179db66df845c26b3d757 100644 (file)
@@ -7280,7 +7280,9 @@ static void build_sched_groups(struct s_data *d, enum sched_domain_level l,
                                                d->send_covered, d->tmpmask);
 
        case SD_LV_ALLNODES:
-               init_sched_build_groups(cpu_map, cpu_map, &cpu_to_allnodes_group,
+               if (cpu == cpumask_first(cpu_map))
+                       init_sched_build_groups(cpu_map, cpu_map,
+                                       &cpu_to_allnodes_group,
                                        d->send_covered, d->tmpmask);
                break;
 #endif
@@ -7331,14 +7333,9 @@ static int __build_sched_domains(const struct cpumask *cpu_map,
                build_sched_groups(&d, SD_LV_MC, cpu_map, i);
                build_sched_groups(&d, SD_LV_CPU, cpu_map, i);
                build_sched_groups(&d, SD_LV_NODE, cpu_map, i);
+               build_sched_groups(&d, SD_LV_ALLNODES, cpu_map, i);
        }
 
-#ifdef CONFIG_NUMA
-       /* Set up node groups */
-       if (d.sd_allnodes)
-               build_sched_groups(&d, SD_LV_ALLNODES, cpu_map, 0);
-#endif
-
        /* Calculate CPU power for physical packages and nodes */
 #ifdef CONFIG_SCHED_SMT
        for_each_cpu(i, cpu_map) {