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 <mingo@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Rik van Riel <riel@redhat.com>
Link: http://lkml.kernel.org/n/tip-xjt7bqjlphxRfjXxasqm4cdv@git.kernel.org
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);
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)