summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMel Gorman <mgorman@suse.de>2012-11-23 11:23:49 (GMT)
committerMel Gorman <mgorman@suse.de>2012-12-11 14:42:56 (GMT)
commit3105b86a9fee7d2c2e76edb53bbbc4027599628f (patch)
treed9c3cfed4b98873d92dafadf2a8820fbbd71ae1c
parent1a687c2e9a99335c9e77392f050fe607fa18a652 (diff)
downloadlinux-3105b86a9fee7d2c2e76edb53bbbc4027599628f.tar.xz
mm: sched: numa: Control enabling and disabling of NUMA balancing if !SCHED_DEBUG
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>
-rw-r--r--kernel/sched/core.c9
-rw-r--r--kernel/sched/sched.h8
2 files changed, 16 insertions, 1 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 7a45015..2a46f44 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -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 */
/*
diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index ae31c05..4f93d03 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -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)
{