[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Wed, 6 Jun 2012 14:52:51 +0800
From: Alex Shi <alex.shi@...el.com>
To: a.p.zijlstra@...llo.nl
Cc: anton@...ba.org, benh@...nel.crashing.org, cmetcalf@...era.com,
dhowells@...hat.com, davem@...emloft.net, fenghua.yu@...el.com,
hpa@...or.com, ink@...assic.park.msu.ru,
linux-alpha@...r.kernel.org, linux-ia64@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-mips@...ux-mips.org,
linuxppc-dev@...ts.ozlabs.org, linux-sh@...r.kernel.org,
mattst88@...il.com, paulus@...ba.org, lethal@...ux-sh.org,
ralf@...ux-mips.org, rth@...ddle.net, sparclinux@...r.kernel.org,
tony.luck@...el.com, x86@...nel.org, sivanich@....com,
greg.pearson@...com, kamezawa.hiroyu@...fujitsu.com,
bob.picco@...cle.com, chris.mason@...cle.com,
torvalds@...ux-foundation.org, akpm@...ux-foundation.org,
mingo@...nel.org, pjt@...gle.com, tglx@...utronix.de,
seto.hidetoshi@...fujitsu.com, ak@...ux.intel.com,
arjan.van.de.ven@...el.com
Subject: [RFC PATCH] sched/numa: do load balance between remote nodes
commit cb83b629b remove the NODE sched domain and check if the node
distance in SLIT table is farther than REMOTE_DISTANCE, if so, it will
lose the load balance chance at exec/fork/wake_affine points.
But actually, even the node distance is farther than REMOTE_DISTANCE,
Modern CPUs also has QPI like connections, that make memory access is
not too slow between nodes. So above losing on NUMA machine make a
huge performance regression on benchmark: hackbench, tbench, netperf
and oltp etc.
This patch will recover the scheduler behavior to old mode on all my
Intel platforms: NHM EP/EX, WSM EP, SNB EP/EP4S, and so remove the
perfromance regressions. (all of them just has 2 kinds distance, 10 21)
Signed-off-by: Alex Shi <alex.shi@...el.com>
---
kernel/sched/core.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 39eb601..b2ee41a 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -6286,7 +6286,7 @@ static int sched_domains_curr_level;
static inline int sd_local_flags(int level)
{
- if (sched_domains_numa_distance[level] > REMOTE_DISTANCE)
+ if (sched_domains_numa_distance[level] > RECLAIM_DISTANCE)
return 0;
return SD_BALANCE_EXEC | SD_BALANCE_FORK | SD_WAKE_AFFINE;
--
1.7.5.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists