[PATCH] sched: sched tuning

Do some basic initial tuning.

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Nick Piggin 2005-06-25 14:57:21 -07:00 committed by Linus Torvalds
parent 68767a0ae4
commit 687f1661d3
5 changed files with 55 additions and 24 deletions

View file

@ -14,7 +14,7 @@
#include <linux/topology.h> #include <linux/topology.h>
#include <linux/nodemask.h> #include <linux/nodemask.h>
#define SD_NODES_PER_DOMAIN 6 #define SD_NODES_PER_DOMAIN 16
#ifdef CONFIG_NUMA #ifdef CONFIG_NUMA
/** /**

View file

@ -81,7 +81,7 @@ static inline int node_to_first_cpu(int node)
.per_cpu_gain = 100, \ .per_cpu_gain = 100, \
.flags = SD_LOAD_BALANCE \ .flags = SD_LOAD_BALANCE \
| SD_BALANCE_EXEC \ | SD_BALANCE_EXEC \
| SD_BALANCE_NEWIDLE \ | SD_BALANCE_FORK \
| SD_WAKE_BALANCE, \ | SD_WAKE_BALANCE, \
.last_balance = jiffies, \ .last_balance = jiffies, \
.balance_interval = 1, \ .balance_interval = 1, \

View file

@ -42,25 +42,54 @@
void build_cpu_to_node_map(void); void build_cpu_to_node_map(void);
#define SD_CPU_INIT (struct sched_domain) { \
.span = CPU_MASK_NONE, \
.parent = NULL, \
.groups = NULL, \
.min_interval = 1, \
.max_interval = 4, \
.busy_factor = 64, \
.imbalance_pct = 125, \
.cache_hot_time = (10*1000000), \
.per_cpu_gain = 100, \
.cache_nice_tries = 2, \
.busy_idx = 2, \
.idle_idx = 1, \
.newidle_idx = 2, \
.wake_idx = 1, \
.forkexec_idx = 1, \
.flags = SD_LOAD_BALANCE \
| SD_BALANCE_NEWIDLE \
| SD_BALANCE_EXEC \
| SD_WAKE_AFFINE, \
.last_balance = jiffies, \
.balance_interval = 1, \
.nr_balance_failed = 0, \
}
/* sched_domains SD_NODE_INIT for IA64 NUMA machines */ /* sched_domains SD_NODE_INIT for IA64 NUMA machines */
#define SD_NODE_INIT (struct sched_domain) { \ #define SD_NODE_INIT (struct sched_domain) { \
.span = CPU_MASK_NONE, \ .span = CPU_MASK_NONE, \
.parent = NULL, \ .parent = NULL, \
.groups = NULL, \ .groups = NULL, \
.min_interval = 80, \ .min_interval = 8, \
.max_interval = 320, \ .max_interval = 8*(min(num_online_cpus(), 32)), \
.busy_factor = 320, \ .busy_factor = 64, \
.imbalance_pct = 125, \ .imbalance_pct = 125, \
.cache_hot_time = (10*1000000), \ .cache_hot_time = (10*1000000), \
.cache_nice_tries = 1, \ .cache_nice_tries = 2, \
.busy_idx = 3, \
.idle_idx = 2, \
.newidle_idx = 0, /* unused */ \
.wake_idx = 1, \
.forkexec_idx = 1, \
.per_cpu_gain = 100, \ .per_cpu_gain = 100, \
.flags = SD_LOAD_BALANCE \ .flags = SD_LOAD_BALANCE \
| SD_BALANCE_EXEC \ | SD_BALANCE_EXEC \
| SD_BALANCE_NEWIDLE \ | SD_BALANCE_FORK \
| SD_WAKE_IDLE \
| SD_WAKE_BALANCE, \ | SD_WAKE_BALANCE, \
.last_balance = jiffies, \ .last_balance = jiffies, \
.balance_interval = 1, \ .balance_interval = 64, \
.nr_balance_failed = 0, \ .nr_balance_failed = 0, \
} }
@ -69,17 +98,21 @@ void build_cpu_to_node_map(void);
.span = CPU_MASK_NONE, \ .span = CPU_MASK_NONE, \
.parent = NULL, \ .parent = NULL, \
.groups = NULL, \ .groups = NULL, \
.min_interval = 80, \ .min_interval = 64, \
.max_interval = 320, \ .max_interval = 64*num_online_cpus(), \
.busy_factor = 320, \ .busy_factor = 128, \
.imbalance_pct = 125, \ .imbalance_pct = 133, \
.cache_hot_time = (10*1000000), \ .cache_hot_time = (10*1000000), \
.cache_nice_tries = 1, \ .cache_nice_tries = 1, \
.busy_idx = 3, \
.idle_idx = 3, \
.newidle_idx = 0, /* unused */ \
.wake_idx = 0, /* unused */ \
.forkexec_idx = 0, /* unused */ \
.per_cpu_gain = 100, \ .per_cpu_gain = 100, \
.flags = SD_LOAD_BALANCE \ .flags = SD_LOAD_BALANCE, \
| SD_BALANCE_EXEC, \
.last_balance = jiffies, \ .last_balance = jiffies, \
.balance_interval = 100*(63+num_online_cpus())/64, \ .balance_interval = 64, \
.nr_balance_failed = 0, \ .nr_balance_failed = 0, \
} }

View file

@ -42,12 +42,11 @@ extern int __node_distance(int, int);
.cache_nice_tries = 2, \ .cache_nice_tries = 2, \
.busy_idx = 3, \ .busy_idx = 3, \
.idle_idx = 2, \ .idle_idx = 2, \
.newidle_idx = 1, \ .newidle_idx = 0, \
.wake_idx = 1, \ .wake_idx = 1, \
.forkexec_idx = 1, \ .forkexec_idx = 1, \
.per_cpu_gain = 100, \ .per_cpu_gain = 100, \
.flags = SD_LOAD_BALANCE \ .flags = SD_LOAD_BALANCE \
| SD_BALANCE_NEWIDLE \
| SD_BALANCE_FORK \ | SD_BALANCE_FORK \
| SD_BALANCE_EXEC \ | SD_BALANCE_EXEC \
| SD_WAKE_BALANCE, \ | SD_WAKE_BALANCE, \

View file

@ -91,7 +91,7 @@
.per_cpu_gain = 25, \ .per_cpu_gain = 25, \
.busy_idx = 0, \ .busy_idx = 0, \
.idle_idx = 0, \ .idle_idx = 0, \
.newidle_idx = 0, \ .newidle_idx = 1, \
.wake_idx = 0, \ .wake_idx = 0, \
.forkexec_idx = 0, \ .forkexec_idx = 0, \
.flags = SD_LOAD_BALANCE \ .flags = SD_LOAD_BALANCE \
@ -121,15 +121,14 @@
.cache_nice_tries = 1, \ .cache_nice_tries = 1, \
.per_cpu_gain = 100, \ .per_cpu_gain = 100, \
.busy_idx = 2, \ .busy_idx = 2, \
.idle_idx = 0, \ .idle_idx = 1, \
.newidle_idx = 1, \ .newidle_idx = 2, \
.wake_idx = 1, \ .wake_idx = 1, \
.forkexec_idx = 0, \ .forkexec_idx = 1, \
.flags = SD_LOAD_BALANCE \ .flags = SD_LOAD_BALANCE \
| SD_BALANCE_NEWIDLE \ | SD_BALANCE_NEWIDLE \
| SD_BALANCE_EXEC \ | SD_BALANCE_EXEC \
| SD_WAKE_AFFINE \ | SD_WAKE_AFFINE, \
| SD_WAKE_BALANCE, \
.last_balance = jiffies, \ .last_balance = jiffies, \
.balance_interval = 1, \ .balance_interval = 1, \
.nr_balance_failed = 0, \ .nr_balance_failed = 0, \