commit 8f4d37ec073c17e2d4aa8851df5837d798606d6f
Author: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
Date: Fri Jan 25 21:08:29 2008 +0100
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@xxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
:040000 040000 ab225228500f7a19d5ad20ca12ca3fc8ff5f5ad1
f1742e1d225a72aecea9d6961ed989b5943d31d8 M arch
:040000 040000 25d85e4ef7a71b0cc76801a2526ebeb4dce180fe
ae61510186b4fad708ef0211ac169decba16d4e5 M include
:040000 040000 9247cec7dd506c648ac027c17e5a07145aa41b26
950832cc1dc4d30923f593ecec883a06b45d62e9 M kernel
# bad: [29e8c3c304b62f31b799565c9ee85d42bd163f80] Linux 2.6.25-rc4
# good: [49914084e797530d9baaf51df9eda77babc98fa8] Linux 2.6.24
git-bisect start 'v2.6.25-rc4' 'v2.6.24'
# bad: [bd45ac0c5daae35e7c71138172e63df5cf644cf6] Merge branch 'linux-2.6'
git-bisect bad bd45ac0c5daae35e7c71138172e63df5cf644cf6
# good: [a6f71745969d495d697d1ccd96385d2f7a963375] [POWERPC] 85xx: Only invalidate TLB0 and TLB1
git-bisect good a6f71745969d495d697d1ccd96385d2f7a963375
# bad: [fb5b6095f320bd5a615049aa5fe8827ae9d1bf80] [NETFILTER]: arp_tables: move entry and target checks to seperate functions
git-bisect bad fb5b6095f320bd5a615049aa5fe8827ae9d1bf80
# bad: [50d9a126240f9961cfdd063336bbeb91f77a7dce] Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
git-bisect bad 50d9a126240f9961cfdd063336bbeb91f77a7dce
# good: [102df6a785bd5ff22b0ca745f3107ab9780fc30b] V4L/DVB (6685): ir-keymaps.c: extra keys on winfast Y04G0033 remote
git-bisect good 102df6a785bd5ff22b0ca745f3107ab9780fc30b
# good: [a999337b49fcdd2c4a475e97e4b8337ebdfa4abf] V4L/DVB (7078): radio: fix sf16fmi section mismatch
git-bisect good a999337b49fcdd2c4a475e97e4b8337ebdfa4abf
# bad: [b31fde6db2b76a9f7f59bf016652b46cff43f8da] Merge git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb
git-bisect bad b31fde6db2b76a9f7f59bf016652b46cff43f8da
# bad: [6478d8800b75253b2a934ddcb734e13ade023ad0] sched: remove the !PREEMPT_BKL code
git-bisect bad 6478d8800b75253b2a934ddcb734e13ade023ad0
# good: [80bf3171dcdf0f5d236e2e48afe2a95c7ce23879] sched: clean up pull_rt_task()
git-bisect good 80bf3171dcdf0f5d236e2e48afe2a95c7ce23879
# good: [eaf649e9fe6685f4c5a392cd0e16df5fd6660b7c] Preempt-RCU: CPU Hotplug handling
git-bisect good eaf649e9fe6685f4c5a392cd0e16df5fd6660b7c
# bad: [6f505b16425a51270058e4a93441fe64de3dd435] sched: rt group scheduling
git-bisect bad 6f505b16425a51270058e4a93441fe64de3dd435
# good: [78f2c7db6068fd6ef75b8c120f04a388848eacb5] sched: SCHED_FIFO/SCHED_RR watchdog timer
git-bisect good 78f2c7db6068fd6ef75b8c120f04a388848eacb5
# good: [02b67cc3ba36bdba351d6c3a00593f4ec550d9d3] sched: do not do cond_resched() when CONFIG_PREEMPT
git-bisect good 02b67cc3ba36bdba351d6c3a00593f4ec550d9d3
# bad: [fa85ae2418e6843953107cd6a06f645752829bc0] sched: rt time limit
git-bisect bad fa85ae2418e6843953107cd6a06f645752829bc0
# bad: [8f4d37ec073c17e2d4aa8851df5837d798606d6f] sched: high-res preemption tick
git-bisect bad 8f4d37ec073c17e2d4aa8851df5837d798606d6f