Cada vez que veo el arranque de Linux, veo este mensaje:
clocksource tsc inestable (delta = NNNNNNNN ns)
donde NNNNNNNN es un número muy grande que puede ser positivo o negativo.
¿Qué significa este mensaje? ¿Debería preocuparme por esto?
Cada vez que veo el arranque de Linux, veo este mensaje:
clocksource tsc inestable (delta = NNNNNNNN ns)
donde NNNNNNNN es un número muy grande que puede ser positivo o negativo.
¿Qué significa este mensaje? ¿Debería preocuparme por esto?
Respuestas:
Sinceramente, veo este mensaje por primera vez hoy y no tengo idea de lo que realmente significa.
Dicho esto, leí el artículo de Wikipedia sobre el Contador de sello de tiempo (que es lo que significa tsc
en el mensaje de error). El artículo menciona un problema con el TSC en el segundo párrafo:
El contador de sello de tiempo ha sido, hasta hace poco, una excelente forma de alta resolución y bajo costo de obtener información de temporización de la CPU. Con la llegada de las CPU multi-core / hyperthreaded, los sistemas con múltiples CPU y los sistemas operativos de "hibernación", no se puede confiar en que el TSC proporcione resultados precisos- a menos que se tenga mucho cuidado para corregir las posibles fallas: tasa de tick y si todos los núcleos (procesadores) tienen valores idénticos en sus registros de cronometraje. No hay promesa de que los contadores de marca de tiempo de múltiples CPU en una sola placa base se sincronizarán. En tales casos, los programadores solo pueden obtener resultados confiables al bloquear su código en una sola CPU. Incluso entonces, la velocidad de la CPU puede cambiar debido a las medidas de ahorro de energía tomadas por el sistema operativo o el BIOS, o el sistema puede hibernar y luego reanudarse (restablecer el contador de marca de tiempo). En esos últimos casos, para seguir siendo relevante, el contador debe recalibrarse periódicamente (de acuerdo con la resolución de tiempo que requiera su solicitud).
En resumen, en los sistemas modernos, el TSC es una mierda para medir el tiempo con precisión . Y eso es lo que te dice el mensaje. En su sistema, el TSC no es una fuente de tiempo estable.
Lo delta
anotado, supongo, es el tiempo delta informado entre dos ticks del TSC. Es decir, cada vez que el TSC cuenta 1
, los NNNNNNNNN
nanosegundos habrán pasado. Entonces, así es como generalmente puedes mantener un tiempo muy preciso.
El kernel de Linux habrá comprobado esta frecuencia varias veces (para determinar si la fuente es estable) y obtuvo resultados diferentes. Así, el mensaje.
Entonces, ¿debes preocuparte?
Honestamente no lo se. A mi entender, este problema surge de los procesos que se "mueven" entre núcleos (cada núcleo podría tener una frecuencia TSC diferente) o un núcleo que cambia su frecuencia central (como con el ahorro de energía).
Lo más probable es que el mensaje solo se imprima porque el núcleo detectó este problema por sí mismo y ahora se ajustará en consecuencia.
Y, por lo que leí en las fuentes del núcleo ( arch/x86/kernel/tsc.c
), no creo que esté demasiado lejos con mis suposiciones.
Dudo que el mensaje signifique una condición crítica. Y baso eso en el supuesto de que ya sabrías si es crítico.
tsc
refiere al contador de sello de tiempo . Si eso ayuda.