Quello che stai cercando di fare è come funzionava Linux -- 10 anni fa.
È diventato più complicato da allora. Alcune delle complicazioni che conosco sono:
- C'è un offset di -5 minuti in modo che il kernel verifichi sempre il rollover jiffy.
- La riga di comando del kernel può impostare un valore di jiffy skip in modo che un kernel a 1000 Hz possa funzionare a 250 o 100 o 10.
- Vari tentativi di NoHZ non utilizzano affatto un tick del timer e si basano solo sull'anello del timer e sull'HPET.
- Credo che ci siano alcune estensioni guest virtuali che disabilitano il segno di spunta e chiedono all'hypervisor host ogni volta che è necessario un segno di spunta. Come le build Xen o UML.
Ecco perché il kernel ha funzioni progettate per dirti l'ora. Usali o scopri cosa stanno facendo e copialo.