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.
Showing the changes to kernel/timer.c (1 of 15 files). Show all
Unified · Split
| @@ -34,7 +34,7 @@ · 33 unmodified lines | ||
| 34 | 34 | #include <linux/cpu.h> |
| 35 | 35 | #include <linux/syscalls.h> |
| 36 | 36 | #include <linux/delay.h> |
| 37 | −#include <linux/clockchips.h> | |
| 37 | +#include <linux/tick.h> | |
| 38 | 38 | |
| 39 | 39 | #include <asm/uaccess.h> |
| 40 | 40 | #include <asm/unistd.h> |
| @@ -874,6 +874,8 @@ static void change_clocksource(void) · 833 unmodified lines | ||
| 874 | 874 | clock->xtime_nsec = 0; |
| 875 | 875 | clocksource_calculate_interval(clock, NTP_INTERVAL_LENGTH); |
| 876 | 876 | |
| 877 | + tick_clock_notify(); | |
| 878 | + | |
| 877 | 879 | printk(KERN_INFO "Time: %s clocksource has been installed.\n", |
| 878 | 880 | clock->name); |
| 879 | 881 | } |
| @@ -937,7 +939,6 @@ void __init timekeeping_init(void) · 57 unmodified lines | ||
| 937 | 939 | write_sequnlock_irqrestore(&xtime_lock, flags); |
| 938 | 940 | } |
| 939 | 941 | |
| 940 | − | |
| 941 | 942 | /* flag for if timekeeping is suspended */ |
| 942 | 943 | static int timekeeping_suspended; |
| 943 | 944 | /* time in seconds when suspend began */ |