mm: sched: numa: Control enabling and disabling of NUMA balancing if !SCHED_DEBUG
authorMel Gorman <mgorman@suse.de>
Fri, 23 Nov 2012 11:23:49 +0000 (11:23 +0000)
committerMel Gorman <mgorman@suse.de>
Tue, 11 Dec 2012 14:42:56 +0000 (14:42 +0000)
The "mm: sched: numa: Control enabling and disabling of NUMA balancing"
depends on scheduling debug being enabled but it's perfectly legimate to
disable automatic NUMA balancing even without this option. This should
take care of it.

Signed-off-by: Mel Gorman <mgorman@suse.de>
kernel/sched/core.c
kernel/sched/sched.h

index 7a45015274ab1674df3ec212d007865630978012..2a46f44074145fed1f40bb205c80bd09f0b257e1 100644 (file)
@@ -1558,6 +1558,7 @@ static void __sched_fork(struct task_struct *p)
 }
 
 #ifdef CONFIG_NUMA_BALANCING
+#ifdef CONFIG_SCHED_DEBUG
 void set_numabalancing_state(bool enabled)
 {
        if (enabled)
@@ -1565,6 +1566,14 @@ void set_numabalancing_state(bool enabled)
        else
                sched_feat_set("NO_NUMA");
 }
+#else
+__read_mostly bool numabalancing_enabled;
+
+void set_numabalancing_state(bool enabled)
+{
+       numabalancing_enabled = enabled;
+}
+#endif /* CONFIG_SCHED_DEBUG */
 #endif /* CONFIG_NUMA_BALANCING */
 
 /*
index ae31c051ff2f1847db72ed3c18ae75a36377a1bf..4f93d031875a12b22727e2daacb2716282e705a0 100644 (file)
@@ -650,9 +650,15 @@ extern struct static_key sched_feat_keys[__SCHED_FEAT_NR];
 
 #ifdef CONFIG_NUMA_BALANCING
 #define sched_feat_numa(x) sched_feat(x)
+#ifdef CONFIG_SCHED_DEBUG
+#define numabalancing_enabled sched_feat_numa(NUMA)
+#else
+extern bool numabalancing_enabled;
+#endif /* CONFIG_SCHED_DEBUG */
 #else
 #define sched_feat_numa(x) (0)
-#endif
+#define numabalancing_enabled (0)
+#endif /* CONFIG_NUMA_BALANCING */
 
 static inline u64 global_rt_period(void)
 {