[tip:sched/balancing] sched: Turn on SD_WAKE_IDLE for 'close' domains

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Commit-ID:  e54c7073fae0683b90b3157e97142202c7334b79
Gitweb:     http://git.kernel.org/tip/e54c7073fae0683b90b3157e97142202c7334b79
Author:     Ingo Molnar <mingo@xxxxxxx>
AuthorDate: Fri, 4 Sep 2009 11:38:07 +0200
Committer:  Ingo Molnar <mingo@xxxxxxx>
CommitDate: Fri, 4 Sep 2009 12:17:06 +0200

sched: Turn on SD_WAKE_IDLE for 'close' domains

Turn it on for the thread, core and cpu domain defaults.

Same argument as for NEWIDLE: we want to err on the side of
over-balancing, and mute the effect of that when it hurts
a workload.

On a NUMA box (4x4) i get better CPU utilization:

 Performance counter stats for './hackbench 10' (10 runs):

 Before:    2124.478000  task-clock-msecs         #     12.196 CPUs    ( +- 0.614% )
 After:     2232.558805  task-clock-msecs         #     12.601 CPUs    ( +- 0.852% )

It's probably not worth turning it on for the NUMA domain though,
as even on this fast-NUMA box it's break-even in terms of cost
versus improvement:

 After #2:  2288.062034  task-clock-msecs         #     12.909 CPUs    ( +- 0.864% )

Acked-by: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Cc: Andreas Herrmann <andreas.herrmann3@xxxxxxx>
Cc: Andreas Herrmann <andreas.herrmann3@xxxxxxx>
Cc: Gautham R Shenoy <ego@xxxxxxxxxx>
Cc: Balbir Singh <balbir@xxxxxxxxxx>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>


---
 include/linux/topology.h |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/include/linux/topology.h b/include/linux/topology.h
index 66774fd..f13ff3a 100644
--- a/include/linux/topology.h
+++ b/include/linux/topology.h
@@ -95,7 +95,7 @@ int arch_update_cpu_topology(void);
 				| 1*SD_BALANCE_NEWIDLE			\
 				| 1*SD_BALANCE_EXEC			\
 				| 1*SD_BALANCE_FORK			\
-				| 0*SD_WAKE_IDLE			\
+				| 1*SD_WAKE_IDLE			\
 				| 1*SD_WAKE_AFFINE			\
 				| 1*SD_WAKE_BALANCE			\
 				| 1*SD_SHARE_CPUPOWER			\
@@ -129,7 +129,7 @@ int arch_update_cpu_topology(void);
 				| 1*SD_BALANCE_NEWIDLE			\
 				| 1*SD_BALANCE_EXEC			\
 				| 1*SD_BALANCE_FORK			\
-				| 0*SD_WAKE_IDLE			\
+				| 1*SD_WAKE_IDLE			\
 				| 1*SD_WAKE_AFFINE			\
 				| 1*SD_WAKE_BALANCE			\
 				| 0*SD_SHARE_CPUPOWER			\
@@ -163,7 +163,7 @@ int arch_update_cpu_topology(void);
 				| 1*SD_BALANCE_NEWIDLE			\
 				| 1*SD_BALANCE_EXEC			\
 				| 1*SD_BALANCE_FORK			\
-				| 0*SD_WAKE_IDLE			\
+				| 1*SD_WAKE_IDLE			\
 				| 0*SD_WAKE_AFFINE			\
 				| 1*SD_WAKE_BALANCE			\
 				| 0*SD_SHARE_CPUPOWER			\
--
To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Stable Commits]     [Linux Stable Kernel]     [Linux Kernel]     [Linux USB Devel]     [Linux Video &Media]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux