sched: Turn on SD_BALANCE_NEWIDLE
authorIngo Molnar <mingo@elte.hu>
Fri, 4 Sep 2009 09:32:54 +0000 (11:32 +0200)
committerIngo Molnar <mingo@elte.hu>
Fri, 4 Sep 2009 09:52:54 +0000 (11:52 +0200)
Start the re-tuning of the balancer by turning on newidle.

It improves hackbench performance and parallelism on a 4x4 box.
The "perf stat --repeat 10" measurements give us:

  domain0             domain1
  .......................................
 -SD_BALANCE_NEWIDLE -SD_BALANCE_NEWIDLE:
   2041.273208  task-clock-msecs         #      9.354 CPUs    ( +-   0.363% )

 +SD_BALANCE_NEWIDLE -SD_BALANCE_NEWIDLE:
   2086.326925  task-clock-msecs         #     11.934 CPUs    ( +-   0.301% )

 +SD_BALANCE_NEWIDLE +SD_BALANCE_NEWIDLE:
   2115.289791  task-clock-msecs         #     12.158 CPUs    ( +-   0.263% )

Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Andreas Herrmann <andreas.herrmann3@amd.com>
Cc: Andreas Herrmann <andreas.herrmann3@amd.com>
Cc: Gautham R Shenoy <ego@in.ibm.com>
Cc: Balbir Singh <balbir@in.ibm.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/topology.h
include/linux/topology.h

index be29eb8..ef7bc7f 100644 (file)
@@ -142,7 +142,7 @@ extern unsigned long node_remap_size[];
        .forkexec_idx           = SD_FORKEXEC_IDX,                      \
                                                                        \
        .flags                  = 1*SD_LOAD_BALANCE                     \
-                               | 0*SD_BALANCE_NEWIDLE                  \
+                               | 1*SD_BALANCE_NEWIDLE                  \
                                | 1*SD_BALANCE_EXEC                     \
                                | 1*SD_BALANCE_FORK                     \
                                | 0*SD_WAKE_IDLE                        \
index fe2c032..66774fd 100644 (file)
@@ -126,7 +126,7 @@ int arch_update_cpu_topology(void);
        .forkexec_idx           = 1,                                    \
                                                                        \
        .flags                  = 1*SD_LOAD_BALANCE                     \
-                               | 0*SD_BALANCE_NEWIDLE                  \
+                               | 1*SD_BALANCE_NEWIDLE                  \
                                | 1*SD_BALANCE_EXEC                     \
                                | 1*SD_BALANCE_FORK                     \
                                | 0*SD_WAKE_IDLE                        \
@@ -160,7 +160,7 @@ int arch_update_cpu_topology(void);
        .forkexec_idx           = 1,                                    \
                                                                        \
        .flags                  = 1*SD_LOAD_BALANCE                     \
-                               | 0*SD_BALANCE_NEWIDLE                  \
+                               | 1*SD_BALANCE_NEWIDLE                  \
                                | 1*SD_BALANCE_EXEC                     \
                                | 1*SD_BALANCE_FORK                     \
                                | 0*SD_WAKE_IDLE                        \