sched: Reduce some allocation pressure
Peter Zijlstra [Thu, 7 Apr 2011 12:09:53 +0000 (14:09 +0200)]
Since we now allocate SD_LV_MAX * nr_cpu_ids sched_domain/sched_group
structures when rebuilding the scheduler toplogy it might make sense
to shrink that depending on the CONFIG_ options.

This is only needed until we get rid of SD_LV_* alltogether and
provide a full dynamic topology interface.

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.406226449@chello.nl
Signed-off-by: Ingo Molnar <mingo@elte.hu>

include/linux/sched.h

index 020b79d..5a9168b 100644 (file)
@@ -897,12 +897,20 @@ static inline struct cpumask *sched_group_cpus(struct sched_group *sg)
 
 enum sched_domain_level {
        SD_LV_NONE = 0,
+#ifdef CONFIG_SCHED_SMT
        SD_LV_SIBLING,
+#endif
+#ifdef CONFIG_SCHED_MC
        SD_LV_MC,
+#endif
+#ifdef CONFIG_SCHED_BOOK
        SD_LV_BOOK,
+#endif
        SD_LV_CPU,
+#ifdef CONFIG_NUMA
        SD_LV_NODE,
        SD_LV_ALLNODES,
+#endif
        SD_LV_MAX
 };