Cette modification résulte d’une mise à jour récente du noyau Linux intitulée « x86/cpu : Make CONFIG_X86_TSC unconditional ». Jusqu’à présent, la version x86 du noyau pouvait encore être compilée sans prise en charge du TSC. Cette possibilité est désormais supprimée, car tous les processeurs encore pris en charge devraient désormais prendre en charge cette technologie.
Le TSC est un compteur 64 bits présent dans les processeurs depuis l’époque du Pentium d’Intel. Il mesure le temps écoulé et peut être lu directement par le CPU. Cela le rend nettement plus rapide que d’autres temporisateurs tels que HPET ou le temporisateur PM ACPI.
Linux abandonnedéfinitivement le matériel ancien
Au cours des dernières décennies, Linux a continué à prendre en charge une quantité remarquable de matériel ancien. Cela impliquait également que le noyau devait tenir compte des processeurs dépourvus de TSC ou de ceux dont le compteur ne pouvait pas être utilisé de manière fiable. À présent que ces processeurs disparaissent progressivement de la base matérielle prise en charge, ce code de compatibilité supplémentaire n’est plus nécessaire. Linux 7.0 avait déjà supprimé la prise en charge des processeurs Intel 486. Au cours du cycle de développement suivant, d’autres processeurs ont également été retirés, qui empêchaient de considérer la TSC comme disponible de manière systématique. Cette nouvelle modification constitue donc avant tout l’aboutissement d’un processus bien plus long.
Pour les propriétaires d’un PC Intel ou AMD récent, cela ne change pratiquement rien. Les processeurs x86 modernes disposent depuis longtemps d’un TSC. Cette modification simplifie toutefois légèrement le noyau Linux, car elle permet de supprimer d’anciennes exceptions et logiques de contrôle.
Windows s’appuie également sur le TSCdepuis des années ;
Microsoft a effectué la transition vers le TSC bien plus tôt. Windows utilise notamment QueryPerformanceCounter (QPC), un système permettant aux logiciels de mesurer des intervalles de temps avec une grande précision. Windows 7 et Windows Server 2008 R2 utilisaient déjà un TSC constant comme base pour le QPC lorsque les compteurs individuels des processeurs pouvaient être synchronisés de manière fiable. Depuis Windows 8, le TSC est devenu encore plus clairement la base standard pour la mesure des performances. Toutefois, lorsqu’un processeur ne dispose pas d’un TSC adapté, Windows peut toujours recourir à des minuteries alternatives telles que HPET ou la minuterie ACPI PM.
La raison en est claire : selon Microsoft, une mesure du temps basée sur le TSC ne prend que quelques dizaines à quelques centaines de cycles CPU. En revanche, une mesure effectuée via un temporisateur de la carte mère peut prendre environ 0,8 à 1 microseconde. Pour les logiciels effectuant très fréquemment des mesures de temps, cette différence peut devenir perceptible. C’est pourquoi le noyau Linux a utilisé pendant des années du code supplémentaire pour détecter les TSC, les calibrer et pallier d’éventuels problèmes. À présent que les processeurs modernes prennent en charge cette technologie de manière quasi universelle, Linux peut lui aussi se débarrasser d’une partie de ce poids historique.