Les puces EPYC Rome d’AMD tombent en panne après 1 044 jours de disponibilité

Le dernier guide de révision du processeur d’AMD pour les puces de serveur EPYC 7002 « Rome » révèle un nouveau bogue intéressant (errata) qui peut provoquer le blocage d’un cœur de la puce après 1 044 jours de disponibilité (~ 2,93 ans), après quoi vous devrez réinitialiser le serveur pour que la puce fonctionne correctement. AMD dit qu’il ne résoudra pas le problème.

La description par AMD du problème, qui affecte ses processeurs EPYC de deuxième génération (les puces Genoa de quatrième génération d’AMD sont les plus récentes), est succincte, mais il y a beaucoup à déballer.

(Crédit image : AMD)

Le problème provient du fait que le cœur ne parvient pas à quitter l’état de veille CC6, mais AMD indique que le moment de l’échec peut varier en fonction du spectre étalé et de la fréquence REFCLK, cette dernière étant l’horloge de référence qui aide la puce à suivre le temps.

L’utilisateur de Reddit, acid_migrain, a une théorie plausible sur le moment exact où le noyau se bloque, en disant : « Malgré ce qu’ils disent, le problème se manifeste en fait à 1042 jours et environ 12 heures. Le TSC fonctionne à 2800 MHz et 2800 * 10 * 1042,5 jours équivaut presque à 0x380000000000000, ce qui contient trop de zéros pour ne pas être une coïncidence. »

La solution de contournement est simple : soit redémarrer avant 1 044 jours de disponibilité, ce qui réinitialise le processeur pour redémarrer votre « minuterie » de 1 044 jours, soit désactiver l’état de veille CC6.

Maintenant, bien que ce bogue de plantage de base de 2,93 ans soit intéressant, la question est de savoir s’il est vraiment important. Bien sûr, c’est important, malgré le fait que les mises à jour de sécurité et la maintenance doivent être effectuées en grande partie, beaucoup intervalles plus courts.

Le scénario le plus réaliste serait simplement ceux qui utilisent la fonctionnalité de correctifs en direct de Linux ou kexec pour mettre à jour sans redémarrer – cela pourrait certainement conduire au type de disponibilité prolongée qui déclencherait le bogue. De plus, les serveurs pour les applications critiques connaissent souvent une disponibilité prolongée.

Bien que ce bogue soit intéressant, ce n’est pas un obstacle pour la majorité des utilisateurs, et les errata dans les puces ne sont certainement pas inhabituels. Les processeurs modernes sont les appareils les plus complexes construits par l’humanité, et ils arrivent presque toujours sur le marché avec de nombreux errata/bugs découverts pendant ou après que les puces aient atteint leur révision d’expédition finale (stepping). Voici un peu plus à ce sujet.

Chip Errata est commun, mais pas génial

Source-138