summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrew Theurer <habanero@us.ibm.com>2005-01-07 21:44:05 -0800
committerLinus Torvalds <torvalds@evo.osdl.org>2005-01-07 21:44:05 -0800
commitf16c759b750250439dd769183d2a41174bb18519 (patch)
tree3bd693cca9f0f3506480bbb50e14a6b35c426417 /include/linux
parent39a488d12d04e804506096c8d5333cc4a9b2db11 (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.h1
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, \