Lines Matching +full:as +full:- +full:is
10 If you grep through the kernel source you will find a number of architecture-
12 architecture-specific overrides of the sched_clock() function and some
17 on this timeline, providing facilities such as high-resolution timers.
18 sched_clock() is used for scheduling and timestamping, and delay timers
23 -------------
25 The purpose of the clock source is to provide a timeline for the system that
28 what time it is.
30 Typically the clock source is a monotonic, atomic counter which will provide
31 n bits which count from 0 to (2^n)-1 and then wraps around to 0 and start over.
32 It will ideally NEVER stop ticking as long as the system is running. It
35 The clock source shall have as high resolution as possible, and the frequency
36 shall be as stable and correct as possible as compared to a real-world wall
41 the counter register is read in two phases on the bus lowest 16 bits first
46 When the wall-clock accuracy of the clock source isn't satisfactory, there
48 the user-visible time to RTC clocks in the system or against networked time
49 servers using NTP, but all they do basically is update an offset against
55 into a nanosecond value as an unsigned long long (unsigned 64 bit) number.
57 mathematical sense is not desirable: instead the number is taken as close as
64 to aid in providing these mult and shift values, such as
68 factors using the frequency of the clock source as the only input.
71 there is nowadays even clocksource_mmio_init() which will take a memory
76 Since a 32-bit counter at say 100 MHz will wrap around to zero after some 43
78 That is the reason why the clock source struct also contains a 'mask'
86 ------------
93 and register range may be used for the clock event, but it is essentially
95 fire interrupts, so as to trigger events on the system timeline. On an SMP
96 system, it is ideal (and customary) to have one such event driving timer per
100 You will notice that the clock event device code is based on the same basic
109 -------------
111 In addition to the clock sources and clock events there is a special weak
115 implementation is not provided, the system jiffy counter will be used as
118 As the name suggests, sched_clock() is used for scheduling the system,
120 for example. It is also used for printk timestamps when you have selected to
123 Compared to clock sources, sched_clock() has to be very fast: it is called
124 much more often, especially by the scheduler. If you have to do trade-offs
127 characteristics as the clock source, i.e. it should be monotonic.
130 i.e. after 64 bits. Since this is a nanosecond value this will mean it wraps
143 The sched_clock() function should be callable in any context, IRQ- and
144 NMI-safe and return a sane value in any context.
147 counter to derive a 64-bit nanosecond value, so for example on the ARM
149 sched_clock() nanosecond base from a 16- or 32-bit counter. Sometimes the
150 same counter that is also used as clock source is used for this purpose.
152 On SMP systems, it is crucial for performance that sched_clock() can be called
154 Some hardware (such as the x86 TSC) will cause the sched_clock() function to
156 enabling the CONFIG_HAVE_UNSTABLE_SCHED_CLOCK option. This is another aspect
161 --------------------------------------
168 Let's hope that your system is running on maximum frequency when this value
169 is calibrated: as an effect when the frequency is geared down to half the
170 full frequency, any delay() will be twice as long. Usually this does not
171 hurt, as you're commonly requesting that amount of delay *or more*. But
174 Enter timer-based delays. Using these, a timer read may be used instead of
175 a hard-coded loop for providing the desired delay.
177 This is done by declaring a struct delay_timer and assigning the appropriate
180 This is available on some architectures like OpenRISC or ARM.