¿Qué significa "clocksource tsc inestable"?


10

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?


Creo que se tscrefiere al contador de sello de tiempo . Si eso ayuda.
Der Hochstapler

Además, dado lo que encuentro sobre este mensaje en línea, ¿ves este mensaje en una máquina física o virtual? Parece que eso es relevante.
Der Hochstapler

Tanto física como virtual. Recibo este mensaje en varios sistemas diferentes cuando inicio Linux en ellos.
bwDraco

Recibí exactamente este mensaje /var/log/messagecuando agregué las opciones "acpi = off" a /etc/grub.conf(como kernel=opción). Cuando lo quité, reinicié, el mensaje desapareció. CentOS 6 con Kernel: .6.32-279.19.1.el6.x86_64

Respuestas:


8

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 tscen 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 deltaanotado, supongo, es el tiempo delta informado entre dos ticks del TSC. Es decir, cada vez que el TSC cuenta 1, los NNNNNNNNNnanosegundos 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.


2
Citando el mismo artículo, algunas CPU modernas también proporcionan un contador de sello de tiempo constante : los procesadores Intel recientes incluyen un TSC de velocidad constante (identificado por el indicador constant_tsc en Linux / proc / cpuinfo). Con estos procesadores, el TSC lee a la velocidad máxima del procesador, independientemente de la velocidad de funcionamiento real de la CPU.
Scai

¿Recomiendas usar hpet en lugar de tsc?
CMCDragonkai

1
Me gustaría agregar información. Que hoy enfrenté este problema en uno de nuestros servidores supermicro. OS es RHEL 6.5 y está dando el mismo mensaje. Y este servidor está arrastrándose a paso de tortuga en este momento. Ha pasado una hora y el arranque aún no se ha completado. Mi próximo paso será cambiar el contador y agregar información en el archivo grub.conf yendo al modo de rescate. Porque el modo de usuario único tampoco funciona
OmiPenguin
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.