summaryrefslogtreecommitdiffstats
path: root/kernel/time
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2008-12-22 02:24:48 +0100
committerIngo Molnar <mingo@elte.hu>2009-01-30 22:35:10 +0100
commit7f22391cbe82a80a9f891d8bd10fc28ff248d1e2 (patch)
treee0ed719d43c6f03bab7f4dbb6c2224603f7268fa /kernel/time
parentf2257b70b0f9b2fe8f2afd83fc6798dca75930b8 (diff)
downloadlinux-7f22391cbe82a80a9f891d8bd10fc28ff248d1e2.tar.gz
linux-7f22391cbe82a80a9f891d8bd10fc28ff248d1e2.tar.bz2
linux-7f22391cbe82a80a9f891d8bd10fc28ff248d1e2.zip
hrtimers: increase clock min delta threshold while interrupt hanging
Impact: avoid timer IRQ hanging slow systems While using the function graph tracer on a virtualized system, the hrtimer_interrupt can hang the system on an infinite loop. This can be caused in several situations: - the hardware is very slow and HZ is set too high - something intrusive is slowing the system down (tracing under emulation) ... and the next clock events to program are always before the current time. This patch implements a reasonable compromise: if such a situation is detected, we share the CPUs time in 1/4 to process the hrtimer interrupts. This is enough to let the system running without serious starvation. It has been successfully tested under VirtualBox with 1000 HZ and 100 HZ with function graph tracer launched. On both cases, the clock events were increased until about 25 ms periodic ticks, which means 40 HZ. So we change a hard to debug hang into a warning message and a system that still manages to limp along. Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'kernel/time')
0 files changed, 0 insertions, 0 deletions