diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2007-03-25 14:31:17 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-25 14:57:34 -0700 |
commit | 9501b6cf5541f0d576d566a463f1e7d3eaaab4eb (patch) | |
tree | 7983c4cc3c82e465cfe88a7fd67e39dbed72e1e0 /drivers/hid | |
parent | 317ec6cd00f25d05d153a780bc178c5335f320ee (diff) | |
download | op-kernel-dev-9501b6cf5541f0d576d566a463f1e7d3eaaab4eb.zip op-kernel-dev-9501b6cf5541f0d576d566a463f1e7d3eaaab4eb.tar.gz |
[PATCH] dynticks: fix hrtimer rounding error in next_timer_interrupt
The rework of next_timer_interrupt() fixed the timer wheel bugs, but
invented a rounding error versus the next hrtimer event. This is caused
by the conversion of the hrtimer internal representation to relative
jiffies.
This causes bug #8100:
http://bugzilla.kernel.org/show_bug.cgi?id=8100
next_timer_interrupt() returns "now" in such a case and causes the code
in tick_nohz_stop_sched_tick() to trigger the timer softirq, which is
bogus as no timer is due for expiry. This results in an endless context
switching between idle and ksoftirqd until a timer is due for expiry.
Modify the hrtimer evaluation so that, it returns now + 1, when the
conversion results in a delta < 1 jiffie.
It's confirmed to resolve bug #8100
Reported-by: Emil Karlson <jkarlson@cc.hut.fi>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/hid')
0 files changed, 0 insertions, 0 deletions