Chaque fois que je vois le démarrage de Linux, je vois ce message:
clocksource tsc unstable (delta = NNNNNNNN ns)
où NNNNNNNN est un très grand nombre qui peut être positif ou négatif.
Que signifie ce message? Dois-je m'en préoccuper?
Chaque fois que je vois le démarrage de Linux, je vois ce message:
clocksource tsc unstable (delta = NNNNNNNN ns)
où NNNNNNNN est un très grand nombre qui peut être positif ou négatif.
Que signifie ce message? Dois-je m'en préoccuper?
Réponses:
Honnêtement, je vois ce message pour la première fois aujourd'hui et je n'ai aucune idée de ce qu'il signifie réellement.
Cela étant dit, j'ai lu l'article Wikipédia sur le compteur d'horodatage (c'est ce que tsc
signifie le message d'erreur). L'article mentionne un problème avec le TSC dans le deuxième paragraphe:
Le compteur d'horodatage était, jusqu'à récemment, un excellent moyen à haute résolution et à faible surcharge d'obtenir des informations de synchronisation du processeur. Avec l'avènement des processeurs multicœurs / hyperthreadés, des systèmes à plusieurs processeurs et des systèmes d'exploitation "d'hibernation", le TSC ne peut plus être utilisé pour fournir des résultats précis- à moins que l'on prenne grand soin de corriger les éventuels défauts: taux de tick et si tous les cœurs (processeurs) ont des valeurs identiques dans leurs registres de chronométrage. Il n'y a aucune promesse que les compteurs d'horodatage de plusieurs processeurs sur une seule carte mère seront synchronisés. Dans de tels cas, les programmeurs ne peuvent obtenir des résultats fiables qu'en verrouillant leur code sur un seul processeur. Même dans ce cas, la vitesse du processeur peut changer en raison des mesures d'économie d'énergie prises par le système d'exploitation ou le BIOS, ou le système peut être mis en veille prolongée et repris plus tard (réinitialisation du compteur d'horodatage). Dans ces derniers cas, pour rester pertinent, le compteur doit être recalibré périodiquement (selon la résolution temporelle requise par votre candidature).
En bref, sur les systèmes modernes, le TSC aspire à mesurer le temps avec précision . Et c'est ce que le message vous dit. Sur votre système, le TSC n'est pas une source de temps stable.
Le delta
noté, je suppose, est le delta de temps signalé entre deux ticks du TSC. Cela signifie que chaque fois que le TSC compte 1
, des NNNNNNNNN
nanosecondes se sont écoulées. C'est ainsi que vous pouvez généralement garder un temps très précis.
Le noyau Linux aura vérifié cette fréquence plusieurs fois (pour déterminer si la source est stable) et il a obtenu des résultats différents. Ainsi, le message.
Alors, avez-vous besoin de vous inquiéter?
Honnêtement, je ne sais pas. À ma connaissance, ce problème découle de processus "déplacés" entre les cœurs (chaque cœur peut avoir une fréquence TSC différente) ou d'un cœur changeant sa fréquence de cœur (comme avec une économie d'énergie).
Très probablement, le message n'est imprimé que parce que le noyau a détecté ce problème pour lui-même et va maintenant s'ajuster en conséquence.
Et, d'après ce que j'ai lu dans les sources du noyau ( arch/x86/kernel/tsc.c
), je ne pense pas être trop loin de mes hypothèses.
Je doute que le message signifie une condition critique. Et je base cela sur l'hypothèse que vous sauriez maintenant si c'était critique.
tsc
fait référence au compteur d'horodatage . Si ça aide.