Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.13 41 lines 1.4 kB view raw
1Time Interpolators 2------------------ 3 4Time interpolators are a base of time calculation between timer ticks and 5allow an accurate determination of time down to the accuracy of the time 6source in nanoseconds. 7 8The architecture specific code typically provides gettimeofday and 9settimeofday under Linux. The time interpolator provides both if an arch 10defines CONFIG_TIME_INTERPOLATION. The arch still must set up timer tick 11operations and call the necessary functions to advance the clock. 12 13With the time interpolator a standardized interface exists for time 14interpolation between ticks. The provided logic is highly scalable 15and has been tested in SMP situations of up to 512 CPUs. 16 17If CONFIG_TIME_INTERPOLATION is defined then the architecture specific code 18(or the device drivers - like HPET) may register time interpolators. 19These are typically defined in the following way: 20 21static struct time_interpolator my_interpolator { 22 .frequency = MY_FREQUENCY, 23 .source = TIME_SOURCE_MMIO32, 24 .shift = 8, /* scaling for higher accuracy */ 25 .drift = -1, /* Unknown drift */ 26 .jitter = 0 /* time source is stable */ 27}; 28 29void time_init(void) 30{ 31 .... 32 /* Initialization of the timer *. 33 my_interpolator.address = &my_timer; 34 register_time_interpolator(&my_interpolator); 35 .... 36} 37 38For more details see include/linux/timex.h and kernel/timer.c. 39 40Christoph Lameter <christoph@lameter.com>, October 31, 2004 41