Ce que vous essayez de faire, c'est comment Linux fonctionnait - il y a 10 ans.
C'est devenu plus compliqué depuis. Certaines des complications que je connais sont :
- Il y a un décalage de -5 minutes pour que le noyau teste toujours le roulement rapide.
- La ligne de commande du noyau peut définir une valeur de saut rapide pour qu'un noyau de 1 000 Hz puisse s'exécuter à 250, 100 ou 10.
- Diverses tentatives de NoHZ n'utilisent pas du tout de tic de minuterie et s'appuient uniquement sur l'anneau de minuterie et le HPET.
- Je crois qu'il existe des extensions d'invités virtuels qui désactivent la coche et demandent à l'hyperviseur hôte chaque fois qu'une coche est nécessaire. Comme les builds Xen ou UML.
C'est pourquoi le noyau a des fonctions conçues pour vous indiquer l'heure. Utilisez-les ou découvrez ce qu'ils font et copiez-le.