[ntp:questions] NTP + kernel frequency

David L. Mills mills at udel.edu
Sun Nov 11 17:23:46 UTC 2007


Ooop; sorry for the runt that escaped here.

Any work on the Linux kernel to avoid timer interrupts is incompatible 
with NTP. This is not a bad or good judgement, just and engineering 
constraint. If timer interrupts are disabled, disable NTP.

ON the issue about timer interrupts at frequencies other than 100 Hz, 
this is easy to fix. The nanokernel code that left here uses a constant 
SHIFT_PLL that must be scaled inversely as the timer interrupt 
frequency. It does not need to be exact, but close. I don't know how or 
even whether this code is mangled in the Linux kernel, but there you 
have it. If provisions to fix this are not in the Linux kernel and the 
timer frequency is other than 100 Hz, then the Linux build and install 
process should not include ntpd; alternatively, the kernel discipline 
must be disabled.


Hal Murray wrote:

>>>On Linux, a simpler way can be to look at /proc/interrupts - e.g.
>>>(probably Linux-version- and possibly config-specific):
>>>$ (cat /proc/interrupts; sleep 10; cat /proc/interrupts) | \
>>>  awk '/timer/{prev=now; now=$2} END{printf "%dHz\n", int((now-prev)/10)}'
>>This yields 41Hz on my Via C7 machine (which has frequency scaling and 
>>runs a 2.6.22-based kernel) while it's idle, and a higher number (e.g. 
>>90Hz) while it's doing something. It yields 100Hz on a Soekris 4801 
>>running 2.4.31.
> There is a lot of work going on in the Linux kernel to avoid
> unnecessary timer interrupts in order to save power on laptops
> and other systems running off batteries.

More information about the questions mailing list