summaryrefslogtreecommitdiffstats
path: root/kernel/timer.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2007-02-16 10:28:03 +0100
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-16 17:13:59 +0100
commit79bf2bb335b85db25d27421c798595a2fa2a0e82 (patch)
tree550ec2654ae1dd65b871de7fe9c890108c6e86d8 /kernel/timer.c
parent[PATCH] tick-management: broadcast functionality (diff)
downloadlinux-79bf2bb335b85db25d27421c798595a2fa2a0e82.tar.xz
linux-79bf2bb335b85db25d27421c798595a2fa2a0e82.zip
[PATCH] tick-management: dyntick / highres functionality
With Ingo Molnar <mingo@elte.hu> Add functions to provide dynamic ticks and high resolution timers. The code which keeps track of jiffies and handles the long idle periods is shared between tick based and high resolution timer based dynticks. The dyntick functionality can be disabled on the kernel commandline. Provide also the infrastructure to support high resolution timers. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu> Cc: john stultz <johnstul@us.ibm.com> Cc: Roman Zippel <zippel@linux-m68k.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/timer.c')
-rw-r--r--kernel/timer.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/timer.c b/kernel/timer.c
index 7d522bdf8265..f058e6cfd50c 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -34,7 +34,7 @@
#include <linux/cpu.h>
#include <linux/syscalls.h>
#include <linux/delay.h>
-#include <linux/clockchips.h>
+#include <linux/tick.h>
#include <asm/uaccess.h>
#include <asm/unistd.h>
@@ -874,6 +874,8 @@ static void change_clocksource(void)
clock->xtime_nsec = 0;
clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH);
+ tick_clock_notify();
+
printk(KERN_INFO "Time: %s clocksource has been installed.\n",
clock->name);
}
@@ -937,7 +939,6 @@ void __init timekeeping_init(void)
write_sequnlock_irqrestore(&xtime_lock, flags);
}
-
/* flag for if timekeeping is suspended */
static int timekeeping_suspended;
/* time in seconds when suspend began */