TSC_DEADLINE désactivé en raison d'errata

15

J'ai envoyé mon ordinateur au fabricant pour diagnostic et aide pour un problème de sortie vidéo qu'il rencontrait. Ils ont mis à jour le BIOS. Depuis, je reçois

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

Je n'avais pas de packages de microcode ou ucode installés auparavant et je n'avais pas l'habitude de recevoir ce message.

J'ai contacté le fabricant et il a répondu "ne me souviens pas de votre numéro de ticket mais doute que nous ayons mis à jour le BIOS", donc ils ne sont pas très utiles.

Il démarre et fonctionne, mais TSC_DEADLINE est-il important ou utile?

La seule chose que je puisse trouver à ce sujet est la suivante: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=73b866d89bf7c9a895d5445faad03fa3d56c8af8

Mais cela ne semble s'appliquer qu'à VirtualBox, et dans tous les cas, j'exécute déjà le noyau 4.14, donc je pense que si ce commit devait résoudre mon problème, il l'aurait déjà.

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
la source
La plupart des distributions Linux fournissent un package linux-firmwarequi fournit les mises à jour du micrologiciel requises. Dans Debian, vous devrez peut-être l'activer contribet / ou l' non-freeobtenir. Le patch que vous avez lié est destiné à résoudre la situation idiote lorsque le noyau se conforme à un firmware obsolète lors du démarrage dans une machine virtuelle, qui n'a évidemment pas de firmware ...
AlexP
2
@AlexP linux-firmwarene mettra pas à jour le microcode, vous en avez besoin intel-microcodeou amd64-microcodepour cela (au moins sur Debian et ses dérivés).
Stephen Kitt

Réponses:

17

L'apparition soudaine de ce message est plutôt étrange; cela suggère que votre firmware mis à jour ne met plus à jour le microcode de votre CPU, contrairement au firmware précédent que vous aviez. Bizarre ... (Un autre scénario possible est que votre CPU à l' origine ne prend pas en charge TSC date limite du tout , et votre firmware est maintenant mise à niveau de son microcode vers une version qui déclare soutien à échéance TSC, mais a errata rendu inutile.)

Dans tous les cas, la prise en charge des délais TSC est agréable, mais pas vitale. Le noyau a un cadre élaboré pour le chronométrage et la gestion des événements chronométrés; La date limite du TSC est une implémentation possible de la gestion des événements, mais pas la seule. Sur les processeurs qui le supportent, c'est bien d'avoir, car c'est très efficace.

Pour mettre à niveau votre microcode et, espérons-le, réactiver la prise en charge des délais TSC, vous pouvez installer les packages de mise à jour du microcode à partir de Debian contribet des non-freeréférentiels. Pour ce faire, éditez votre /etc/apt/sources.listpour vous assurer que vos définitions de référentiel Debian incluent main, contribet non-free; puis exécutez

sudo apt update

suivi par

sudo apt install intel-microcode

(pour les processeurs Intel) ou

sudo apt install amd64-microcode

(pour les processeurs AMD). Une fois cela fait, redémarrez et votre microcode devrait être mis à jour. Si la prise en charge des délais TSC est réactivée, vous ne verrez pas le message d'erreur au démarrage, et vous verrez tsc_deadline_timerdans les flagslignes de /proc/cpuinfo.

Le wiki Debian contient plus d'informations sur les mises à jour du microcode .

Stephen Kitt
la source
Merci pour votre correction, Stephen. Je viens de mettre à jour mon ordinateur portable de Debian Stretch à Buster, et je suis tombé sur le même message d'erreur de délai TSC au démarrage. Votre solution fonctionne comme un charme!
Qiang Xu