Holy. Cow. This is the most information I have ever seen on Unix timekeeping in one place. This should be published as an O’Reilly animal book. Seriously, good stuff.
Thank you, I hope that after reading this article you should mostly know the ins and outs of time on Unix and understand most of the jargon. I tried to make it as approachable as possible.
Just a heads-up: tags are filtered individually, so if any one of the tags there are filtered people won’t see this. So, the fewer tags the better.
Something worth mentioning is that kern.hz style parameters are not as relevant these days. Linux, FreeBSD, Darwin, (illumos? DragonFly?) are by default tickless. The kernel won’t get timer interrupts at 100/1000/whatever Hz, in fact idle CPUs won’t get interrupts for long periods of time, so they can remain in deep sleep states for longer to save power.
Yep, most kernel these days come configured with CONFIG_NO_HZ. Otherwise it would be pretty hard to do dynamic frequency scaling to save power on laptops and portable mobile devices.
However, I found it hard to explain tickless systems without first explaining systems with consistent ticks.