Oups : le retrait d'une solution de contournement vieille de 20 ans rend Linux plus rapide pour les systèmes AMD
/* TEMPORARY FIX */ — Une ancienne solution de contournement pour gérer les problématiques d'alimentation réduit les performances de Linux pour les systèmes AMD depuis 2002.
Un ingénieur chez AMD a récemment découvert qu'un fix vieux de 20 ans pour gérer les composants de l'époque était toujours en application à ce jour pour les systèmes AMD modernes sous Linux et les ralentissait.
Ce dernier a soumis un patch correctif la semaine dernière pour les drivers de processeurs inactifs, afin d'ignorer une attente inutile pour les processeurs AMD basés sur la microarchitecture Zen.
C'est au moment de l'implémentation de la norme ACPI en 2002 (mécanisme de gestion d'énergie et de ressources pour réduire la consommation des ordinateurs personnels) que cette opération d'attente "bidon" (lecture de données dans le vide) a été intégrée dans le code du kernel, dans le but de reporter volontairement une instruction jusqu'à l'arrêt complet du processeur (avec la commande STPCLK#).
La solution de contournement, toujours en place à ce jour, n'est bien sûr plus du tout nécessaire pour les nouveaux processeurs Zen du fabricant, et se révèle même problématique pour ces derniers.
Au vu de la tâche relativement simple demandée par l'opération qui découle de ce fix, les processeurs peuvent en effet se placer en état C (fonctions réduites), ce qui leur demande par la suite plus de temps pour se "réveiller".
Il est à noter que les systèmes Intel sous Linux ne sont pas concernés par ces lenteurs.
Le patch a quant à lui déjà été accepté par les mainteneurs du kernel, et devrait parvenir à être inclus de justesse dans la version 6.0 du noyau, dont la sortie a été promise par Linus Torvalds pour la fin de semaine (dimanche).
À lire aussi sur Les Joies du Code :
- ⚙️ Linus Torvalds le confirme : le langage Rust va être intégré dans le noyau Linux
- 🤩 Vite, il ne vous reste plus que quelques jours pour commander l'improbable clavier Stack Overflow (v2) !
- 🛠 30 seconds of code : une liste de bouts de code utiles à garder sous la main
À propos de l'auteur
Nicolas Lecointre
Chief Happiness Officer des développeurs, ceinture noire de sudo. Pour rire, j'ai créé Les Joies du Code. J'utilise Vim depuis 10 ans parce que je sais pas comment le quitter.
Articles similaires
Pour éviter de casser des cous, Apple travaille déjà sur un casque VR plus léger
Tesla ouvre son API pour les applications tierces dans ses voitures
Ubuntu 23.10 Mantic Minotaur est disponible
Pour éviter de casser des cous, Apple travaille déjà sur un casque VR plus léger
Tesla ouvre son API pour les applications tierces dans ses voitures
Chaque mois, GitHub perd un pognon monstre à cause de Copilot
Plus de contenu
Quand le commercial me donne la parole sans que je m'y attende en réunion
Quand je trouve enfin la doc que je cherchais... mais qu'elle est en allemand
Quand je demande au dev senior pourquoi il a forcé un merge sans revue de code
Quand un nouveau bug survient après ma correction
Quand on demande au PO s'il veut encore intégrer beaucoup d'US à ce sprint
Quand je trouve de justesse un moyen d'éviter une grosse refactorisation
Quand j'entends quelqu'un dire qu'il a touché à mon code
Comment passer pour un hacker auprès de non-développeurs.
Quand le commercial me donne la parole sans que je m'y attende en réunion
Quand je trouve enfin la doc que je cherchais... mais qu'elle est en allemand
Quand je demande au dev senior pourquoi il a forcé un merge sans revue de code
Quand un nouveau bug survient après ma correction
Quand on demande au PO s'il veut encore intégrer beaucoup d'US à ce sprint

