TSC_DEADLINE deshabilitado debido a erratas

15

Envié mi computadora al fabricante para diagnóstico y ayuda para un problema de salida de video que estaba teniendo. Ellos actualizaron el BIOS. Desde entonces he estado recibiendo

[Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x20 (or later)

Antes no tenía ningún paquete de microcódigo o ucode instalado y no solía recibir este mensaje.

Me puse en contacto con el fabricante y me respondieron "no recuerdo su número de ticket, pero dudo que hayamos actualizado el BIOS", por lo que no son muy útiles.

Arranca y funciona, pero ¿es TSC_DEADLINE importante o útil?

Lo único que puedo encontrar al respecto es esto: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=73b866d89bf7c9a895d5445faad03fa3d56c8af8

Pero eso parece aplicarse solo a VirtualBox, y en cualquier caso ya estoy ejecutando el kernel 4.14, por lo que pensaría que si esa confirmación solucionaría mi problema, ya lo habría hecho.

ryan@pocketwee:~$ uname -a
Linux pocketwee 4.14.0-1-amd64 #1 SMP Debian 4.14.2-1 (2017-11-30) x86_64 GNU/Linux
RML
fuente
La mayoría de las distribuciones de Linux proporcionan un paquete linux-firmwareque proporciona las actualizaciones de firmware requeridas. En Debian puede que tenga que habilitarlo contriby / o non-freeobtenerlo. El parche se enlazó pretende resolver la situación tonto cuando cumple el núcleo de firmware anticuado cuando se arranca en una máquina virtual, lo que obviamente no tiene ningún firmware ...
AlexP
2
@AlexP linux-firmwareno actualizará el microcódigo, usted necesita intel-microcodeo amd64-microcodepara eso (al menos en Debian y derivados).
Stephen Kitt

Respuestas:

17

La aparición repentina de este mensaje es bastante extraña; sugiere que su firmware actualizado ya no está actualizando el microcódigo de su CPU, mientras que el firmware anterior que tenía lo hizo. Extraño ... (Otro escenario posible es que la CPU originalmente no apoyó plazo TSC en absoluto , y el firmware está actualizando su microcódigo a una versión que declara apoyo a plazo TSC, pero tiene fe de erratas que hace inútil.)

En cualquier caso, es bueno tener soporte para la fecha límite de TSC, pero no es vital. El kernel tiene un marco elaborado para cronometraje y manejo de eventos cronometrados; La fecha límite del TSC es una posible implementación del manejo de eventos, pero no la única. Sin embargo, en las CPU que lo admiten, es bueno tenerlo, porque es muy eficiente.

Para actualizar su microcódigo y, con suerte, volver a habilitar el soporte de la fecha límite de TSC, puede instalar los paquetes de actualización de microcódigo de Debian contriby los non-freerepositorios. Para hacerlo, edite su /etc/apt/sources.listpara asegurarse de que sus definiciones de repositorio de Debian incluyen main, contriby non-free; entonces corre

sudo apt update

seguido por

sudo apt install intel-microcode

(para CPU Intel) o

sudo apt install amd64-microcode

(para CPU AMD). Una vez hecho esto, reinicie y su microcódigo debe actualizarse. Si el soporte de la fecha límite de TSC se vuelve a habilitar, no verá el mensaje de error en el arranque, y lo verá tsc_deadline_timeren las flagslíneas de /proc/cpuinfo.

El wiki de Debian tiene más información sobre actualizaciones de microcódigo .

Stephen Kitt
fuente
Gracias por tu solución, Stephen. Acabo de actualizar mi computadora portátil de Debian Stretch a Buster, y me encontré con el mismo mensaje de error de la fecha límite de TSC en el arranque. Su solución funciona como un encanto!
Qiang Xu