Contents of /alx-src/tags/kernel26-2.6.12-alx-r9/Documentation/time_interpolators.txt
Parent Directory | Revision Log
Revision 630 -
(show annotations)
(download)
Wed Mar 4 11:03:09 2009 UTC (15 years, 6 months ago) by niro
File MIME type: text/plain
File size: 1400 byte(s)
Wed Mar 4 11:03:09 2009 UTC (15 years, 6 months ago) by niro
File MIME type: text/plain
File size: 1400 byte(s)
Tag kernel26-2.6.12-alx-r9
1 | Time Interpolators |
2 | ------------------ |
3 | |
4 | Time interpolators are a base of time calculation between timer ticks and |
5 | allow an accurate determination of time down to the accuracy of the time |
6 | source in nanoseconds. |
7 | |
8 | The architecture specific code typically provides gettimeofday and |
9 | settimeofday under Linux. The time interpolator provides both if an arch |
10 | defines CONFIG_TIME_INTERPOLATION. The arch still must set up timer tick |
11 | operations and call the necessary functions to advance the clock. |
12 | |
13 | With the time interpolator a standardized interface exists for time |
14 | interpolation between ticks. The provided logic is highly scalable |
15 | and has been tested in SMP situations of up to 512 CPUs. |
16 | |
17 | If CONFIG_TIME_INTERPOLATION is defined then the architecture specific code |
18 | (or the device drivers - like HPET) may register time interpolators. |
19 | These are typically defined in the following way: |
20 | |
21 | static 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 | |
29 | void 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 | |
38 | For more details see include/linux/timex.h and kernel/timer.c. |
39 | |
40 | Christoph Lameter <christoph@lameter.com>, October 31, 2004 |
41 |