sched/numa: Use select_idle_sibling() to select a destination for task_numa_move()
authorRik van Riel <riel@redhat.com>
Thu, 4 Sep 2014 20:35:30 +0000 (16:35 -0400)
committerIngo Molnar <mingo@kernel.org>
Fri, 19 Sep 2014 10:35:14 +0000 (12:35 +0200)
commitba7e5a279e72f4b246dc7a419ac707e1936ede3e
tree075a1aa73a66a8b798e15576a76eccb9fbbe8f51
parent13924d2a983fc1557eb737ea59e2324adb538fa2
sched/numa: Use select_idle_sibling() to select a destination for task_numa_move()

The code in task_numa_compare() will only examine at most one idle CPU per node,
because they all have the same score. However, some idle CPUs are better
candidates than others, due to busy or idle SMT siblings, etc...

The scheduler has logic to find the best CPU within an LLC to place a
task. The NUMA code should probably use it.

This seems to reduce the standard deviation for single instance SPECjbb2005
with a low warehouse count on my 4 node test system.

Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: mgorman@suse.de
Cc: Mike Galbraith <umgwanakikbuti@gmail.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Link: http://lkml.kernel.org/r/20140904163530.189d410a@cuia.bos.redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/sched/fair.c