diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2007-08-25 12:41:53 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2007-08-25 12:41:53 -0400 |
commit | 218050855ece4e923106ab614ac65afa0f618df3 (patch) | |
tree | f7b1234ce9e8ad0bc5d5af949949251240ec6a2c /include/linux | |
parent | 1fc84aaae3bae9646dd4c7798b8c0ff934338909 (diff) |
sched: adaptive scheduler granularity
Instead of specifying the preemption granularity, specify the wanted
latency. By fixing the granlarity to a constany the wakeup latency
it a function of the number of running tasks on the rq.
Invert this relation.
sysctl_sched_granularity becomes a minimum for the dynamic granularity
computed from the new sysctl_sched_latency.
Then use this latency to do more intelligent granularity decisions: if
there are fewer tasks running then we can schedule coarser. This helps
performance while still always keeping the latency target.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/sched.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index ba78807eab91..322764e04052 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -1399,6 +1399,7 @@ static inline void idle_task_exit(void) {} | |||
1399 | 1399 | ||
1400 | extern void sched_idle_next(void); | 1400 | extern void sched_idle_next(void); |
1401 | 1401 | ||
1402 | extern unsigned int sysctl_sched_latency; | ||
1402 | extern unsigned int sysctl_sched_granularity; | 1403 | extern unsigned int sysctl_sched_granularity; |
1403 | extern unsigned int sysctl_sched_wakeup_granularity; | 1404 | extern unsigned int sysctl_sched_wakeup_granularity; |
1404 | extern unsigned int sysctl_sched_batch_wakeup_granularity; | 1405 | extern unsigned int sysctl_sched_batch_wakeup_granularity; |