Computer Has Two Clocks
notes.lourenci.com
notes.lourenci.com
Anyway, in Linux, clock_monotonic is nearly useless for distributed systems because NTP can arbitrarily screw up its speed.
Clock_monotonic_raw does what most distributed systems want, but for some reason it performed a kernel crossing last time I checked. (Clock_monotonic doesn’t do a kernel crossing.)
One possible solution is to use the TSC directly, but then apply an appropriate multiplier to get all the (heterogeneous) processors to run at the same speed.
I wish Linux’s clocks were better.