diff options
| author | Andrew Theurer <habanero@us.ibm.com> | 2005-01-07 21:44:05 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-01-07 21:44:05 -0800 |
| commit | f16c759b750250439dd769183d2a41174bb18519 (patch) | |
| tree | 3bd693cca9f0f3506480bbb50e14a6b35c426417 /include/linux | |
| parent | 39a488d12d04e804506096c8d5333cc4a9b2db11 (diff) | |
[PATCH] sched: more agressive wake_idle()
This patch addresses some problems with wake_idle(). Currently wake_idle()
will wake a task on an alternate cpu if:
1) task->cpu is not idle
2) an idle cpu can be found
However the span of cpus to look for is very limited (only the task->cpu's
sibling). The scheduler should find the closest idle cpu, starting with
the lowest level domain, then going to higher level domains if allowed
(doamin has flag SD_WAKE_IDLE). This patch does this.
This and the other two patches (also to be submitted) combined have
provided as much at 5% improvement on that "online transaction DB workload"
and 2% on the industry standard J@EE workload.
I asked Martin Bligh to test these for regression, and he did not find any.
I would like to submit for inclusion to -mm and barring any problems
eventually to mainline.
Signed-off-by: <habanero@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/topology.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/topology.h b/include/linux/topology.h index 1206d5a983a9..15877fd926d7 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h @@ -123,6 +123,7 @@ static inline int __next_node_with_cpus(int node) | SD_BALANCE_NEWIDLE \ | SD_BALANCE_EXEC \ | SD_WAKE_AFFINE \ + | SD_WAKE_IDLE \ | SD_WAKE_BALANCE, \ .last_balance = jiffies, \ .balance_interval = 1, \ |
