Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Disable tickless wothout kernel rebuild? #750
I have recent upgraded a number of Raspberry Pi cards to the current distribution, and noted that the timekeeping performance for a stratum-1 server with PPS as reported by NTP offset is a factor of about two worse than with my previous kernel which was compiled without the "tickless" option. Current version: Linux raspi-6 3.12.35+ #730 PREEMPT Fri Dec 19 18:31:24 GMT 2014 armv6l GNU/Linux
Is there any way to select non-tickless operation at run time - such as a boot command-line option - so that the good timekeeping performance might be restored? I would very much prefer to use the stick kernel rather than recompiling - as the GPIO-PPS support is now built-in and very helpful thanks!
(It was suggested that I post this request here.)
I'd like to second this request. A functioning nohz=off would be a valuable addition for people running or trying to run a stratum 1 NTP server, especially in light of this recent NTP bug fix: http://bugs.ntp.org/show_bug.cgi?id=2314
tl:dr; Until recently on tickless kernels NTP would look as though it were using the kernel clock discipline when instructed to but was in fact silently ignoring it. NTP now correctly fails to use the kernel discipline on tickless kernels, and will only use it on kernels with tickless disabled. So, though we can now easily enable PPS in the Raspbian kernel (hooray), NTP will ignore (and always has ignored) it at the kernel level (not hooray).
So it appears that scheduling interrupts occur far more often. We've also switched to voluntary preemption, which may have a beneficial effect for more precise timestamping.
When "nohz=off" was added, on some systems there was no change, on others the NTP jitter was "halved" (approximately). I ended up with: ~ 4 µs jitter on RasPi B/B+, 2 µs on model 2 B, and 1 µs on model 3, when using PPS sources with well under 0.1 µs jitter. Just as a rough guide.