Skip to contentSkip to conversation

sched, numa: Add NUMA_MIGRATION feature flag

tip:numa/core tip-bot for Ingo Molnar 1 participant 1 message Oct 21, 2012 Scheduler

lore
Share & tools
lore
#0 lore raw
Commit-ID:  aef6f4048d7467d2d805c6c9edc6dab37597becb
Gitweb:     http://git.kernel.org/tip/aef6f4048d7467d2d805c6c9edc6dab37597becb
Author:     Ingo Molnar <[email protected]>
AuthorDate: Sat, 20 Oct 2012 22:20:19 +0200
Committer:  Ingo Molnar <[email protected]>
CommitDate: Sun, 21 Oct 2012 14:40:41 +0200

sched, numa: Add NUMA_MIGRATION feature flag

After this patch, doing:

   # echo NO_NUMA_MIGRATION > /sys/kernel/debug/sched_features

Will turn off the NUMA placement logic/policy - but keeps the working set sampling faults in place.

This allows the debugging of the WSS facility, by using it but keeping vanilla, non-NUMA CPU and memory placement policies.

Default enabled. Generates on extra code on !CONFIG_SCHED_DEBUG.

Cc Linus Torvalds <[email protected]>
Cc Andrew Morton <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Andrea Arcangeli <[email protected]>
Cc Rik van Riel <[email protected]>
---
 kernel/sched/core.c     |    3 +++
 kernel/sched/features.h |    3 +++
 2 files changed, 6 insertions(+), 0 deletions(-)
kernel/sched/core.c +3 -0
index ef24c7b..67221c0 100644
@@ -6002,6 +6002,9 @@ void sched_setnode(struct task_struct *p, int node)
 	int on_rq, running;
 	struct rq *rq;
 
+	if (!sched_feat(NUMA_MIGRATION))
+		return;
+
 	rq = task_rq_lock(p, &flags);
 	on_rq = p->on_rq;
 	running = task_current(rq, p);
kernel/sched/features.h +3 -0
index f8a7aeb..1d11f6c 100644
@@ -63,7 +63,10 @@ SCHED_FEAT(RT_RUNTIME_SHARE, true)
 SCHED_FEAT(LB_MIN, false)
 
 #ifdef CONFIG_SCHED_NUMA
+/* Do the working set probing faults: */
 SCHED_FEAT(NUMA,           true)
+/* Do actual migration/placement based on the working set information: */
+SCHED_FEAT(NUMA_MIGRATION, true)
 SCHED_FEAT(NUMA_HOT,       true)
 SCHED_FEAT(NUMA_TTWU_BIAS, false)
 SCHED_FEAT(NUMA_TTWU_TO,   false)