From: Ingo Molnar Date: Sat, 20 Oct 2012 20:20:19 +0000 (+0200) Subject: sched, numa, mm: Add NUMA_MIGRATION feature flag X-Git-Tag: next-20121029~34^2^2~3 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=5c56968cc6eb8fc94a92b38478d5bd0e0f25c8c2;p=karo-tx-linux.git sched, numa, mm: 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. Signed-off-by: Ingo Molnar Cc: Linus Torvalds Cc: Andrew Morton Cc: Peter Zijlstra Cc: Andrea Arcangeli Cc: Rik van Riel Link: http://lkml.kernel.org/n/tip-xjt7bqjlphxRfjXxasqm4cdv@git.kernel.org --- diff --git a/kernel/sched/core.c b/kernel/sched/core.c index 91cc1a5c8166..b607bc8b833b 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c @@ -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); diff --git a/kernel/sched/features.h b/kernel/sched/features.h index f8a7aebaa022..1d11f6c7635f 100644 --- a/kernel/sched/features.h +++ b/kernel/sched/features.h @@ -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)