diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2008-01-25 21:08:29 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-25 21:08:29 +0100 |
commit | 8f4d37ec073c17e2d4aa8851df5837d798606d6f (patch) | |
tree | a9ac9063eca53e4d0110e8086f55241ea70ba993 /kernel/sched_idletask.c | |
parent | sched: do not do cond_resched() when CONFIG_PREEMPT (diff) | |
download | linux-8f4d37ec073c17e2d4aa8851df5837d798606d6f.tar.xz linux-8f4d37ec073c17e2d4aa8851df5837d798606d6f.zip |
sched: high-res preemption tick
Use HR-timers (when available) to deliver an accurate preemption tick.
The regular scheduler tick that runs at 1/HZ can be too coarse when nice
level are used. The fairness system will still keep the cpu utilisation 'fair'
by then delaying the task that got an excessive amount of CPU time but try to
minimize this by delivering preemption points spot-on.
The average frequency of this extra interrupt is sched_latency / nr_latency.
Which need not be higher than 1/HZ, its just that the distribution within the
sched_latency period is important.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/sched_idletask.c')
-rw-r--r-- | kernel/sched_idletask.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sched_idletask.c b/kernel/sched_idletask.c index ef7a2661fa10..2bcafa375633 100644 --- a/kernel/sched_idletask.c +++ b/kernel/sched_idletask.c @@ -61,7 +61,7 @@ move_one_task_idle(struct rq *this_rq, int this_cpu, struct rq *busiest, } #endif -static void task_tick_idle(struct rq *rq, struct task_struct *curr) +static void task_tick_idle(struct rq *rq, struct task_struct *curr, int queued) { } |