Comment un patch vieux de 20 ans ralentissait les machines Linux sous AMD

Nathan Le Gohlisse
Par Nathan Le Gohlisse, Spécialiste Hardware.
Publié le 29 septembre 2022 à 15h37
© shutterstock
© shutterstock

Un patch déployé il y a plus de vingt ans pour corriger un problème de gestion de l'alimentation ralentissait jusqu'à présent les PC Linux équipés de processeurs AMD. Handicapant et complètement obsolète, il va (enfin) être supprimé.

Pour ne pas brûler en quelques heures, le principe de base de nos processeurs, depuis des années, est de n'activer que les transistors utiles pour la tâche demandée par l'utilisateur. C'est sur ce point de départ que les fabricants de CPU ont mis au point des interfaces de gestion d'alimentation de plus en plus sophistiquées pour faire le relais entre l'OS et le matériel.

La gestion d'alimentation et ses débuts cahoteux sur Linux

En 1996, un nouveau standard nommé ACPI (Advanced Configuration and Power Interface) remplaçait ainsi l'APM (Advanced Power Management) lancé à l'époque de Windows 3. Cette nouvelle norme, comme souvent, avait toutefois été principalement conçue pour Windows… et avait donc surtout été testée avec l'OS de Microsoft. Linux, lui, a rapidement souffert de l'arrivée de l'ACPI. Très mal perçu par la communauté Linux, ce standard mal boutiqué pour l'OS libre avait à l'époque suscité la fureur de certains informaticiens. Parmi eux, Linus Torvalds, créateur en 1991 du noyau Linux, qui n'avait (comme à son habitude) pas vraiment su garder son calme.

« L'ACPI est un désastre complet à tout point de vue. Mais nous sommes en quelque sorte coincés avec elle. Si des gens d'Intel écoutent ceci et que vous avez quelque chose à voir avec l'ACPI, tirez-vous une balle maintenant, avant de vous reproduire ». Des propos fleuris tenus un an après que le kernel Linux ne commence à prendre en charge l'ACPI. Et comme le précise The Register, c'est justement sur cette période qu'un bug avait été découvert sur certaines machines AMD Athlon utilisant alors des chipsets VIA.

« Lorsque le noyau envoyait le signal STPCLK# pour mettre un cœur de processeur en veille (bien sûr, il n'y avait qu'un seul cœur à l'époque), les machines problématiques mettaient un certain temps à le faire, et les développeurs du noyau ont donc ajouté des instructions de lecture d'E/S factices, afin que le processeur ne continue pas à fonctionner alors qu'il était censé s'arrêter », narre The Register.

Un patch obsolète, handicapant… et oublié

Censée être temporaire, cette mesure était efficace à la fin des années 90. Le problème, c'est que ces instructions ont été oubliées. Elles étaient ainsi toujours employée sur les machines AMD actuelles sous Linux… alors que le bug d'origine (observable sur des processeurs Athlon eux-mêmes obsolètes) avait pour sa part été corrigé depuis longtemps.

Cette (re)découverte vient d'un ingénieur d'AMD, K Prateek Nayak, qui a utilisé le toolkit « Instruction-Based Sampling » de la firme pour observer le comportement du kernel Linux. Corrigée récemment par un ingénieur d'Intel cette fois, cette vieille mesure vouée aux processeurs Athlon avait un impact négatif important sur les performances des configurations actuelles.

« Cette solution de contournement est très pénible sur les systèmes modernes. Le "inl()" peut prendre des milliers de cycles », explique notamment Dave Hansen, l'ingénieur d'Intel qui a pris soin de nous en débarrasser avec un patch. Comme le précise The Register, ce patch devrait être déployé par l'intermédiaire du kernel Linux 6.0, attendu dimanche. Le gain de performance devrait être substantiel pour les machines concernées.

Source : The Register

Nathan Le Gohlisse
Par Nathan Le Gohlisse
Spécialiste Hardware

Passionné de nouvelles technos, d'Histoire et de vieux Rock depuis tout jeune, je suis un PCiste ayant sombré corps et biens dans les délices de macOS. J'aime causer Tech et informatique sur le web, ici et ailleurs. N’hésitez pas à me retrouver sur Twitter !

Vous êtes un utilisateur de Google Actualités ou de WhatsApp ?
Suivez-nous pour ne rien rater de l'actu tech !
Commentaires (0)
Rejoignez la communauté Clubic
Rejoignez la communauté des passionnés de nouvelles technologies. Venez partager votre passion et débattre de l’actualité avec nos membres qui s’entraident et partagent leur expertise quotidiennement.
Commentaires (10)
MHC

Intel n’a pas payé assez cher pour maintenir ce « bug » ? #PrivateJoke

tux.le.vrai

« un impact négatif important »
Bonne nouvelle en théorie,

même si ça tourne déjà fort avec les Ryzen sous linux.
Avec ma Linux Mageia, je lance des gros jeux et ça tourne plein pot.

ça serait bien d’avoir un impact chiffré.

Popoulo

« Corrigée récemment par un ingénieur d’Intel cette fois » : m’voyez…

Popoulo

« Si des gens d’Intel écoutent ceci et que vous avez quelque chose à voir avec l’ACPI, tirez-vous une balle maintenant, avant de vous reproduire » » : Quelle ouverture d’esprit. A l’image des « fanatiques linuxiens ».

TNZ

Replace toi dans le contexte de l’époque … les décideurs n’étaient pas ceux d’aujourd’hui.

L’attitude à la mode à l’époque était celle d’IBM-je-t’explique-comment-tu-dois-travailler.
Et aussi, c’était l’ami Ballmer qui était aux manettes de Microsoft et qui dictait aux « partenaires » ce qu’ils devaient mettre dans leurs produits. Donc, tout ce qui pouvait plomber le projet Linux était bon à prendre. L’approche du PC domestique comme devant être absolument une machine Microsoft-only était déjà bien en place.

C’est encore le cas aujourd’hui avec les exigences de Microsoft pour désactiver par défaut les clés tiers (les clés des distros GNU/Linux) dans l’UEFI/secureboot auprès des fabricants de PC portables.

KlingonBrain

« Si des gens d’Intel écoutent ceci et que vous avez quelque chose à voir avec l’ACPI, tirez-vous une balle maintenant, avant de vous reproduire » » : Quelle ouverture d’esprit. A l’image des « fanatiques linuxiens ».

Si vous voulez savoir qui est le plus intolérant et fanatique, je vous suggère plutôt de lire les contrats de licence que de vous fier à ces vieilles légendes urbaines.

ptitepuce

Linus Torvald est aussi connu pour son « Nvidia fuck You » quand la pauvre journaliste demande pourquoi la technologie Optimus est si compliquée à mettre en place sur Linux :stuck_out_tongue:

Pour les CPU AMD actuels, c’est une bonne nouvelle si il y a amélioration de perfs, quand on voit les millions de lignes de code du kernel, il doit y en avoir d’autres des choses obsolètes, mais dans l’ensemble ça ronronne bien, pas à m’en plaindre en tout cas personnellement.

Martin_Penwald

@TNZ Et rappelons que Ballmer appelait le logiciel libre ”un cancer”. ’faut admettre que ça a de quoi énerver.

robert_b

Des Athlons en 90?
Ils ont débarqués en 2001/2 si mes souvenirs sont bons.
Après vérification, c’est en juin 1999 que sort le premier Athlon.

TNZ

Ben oui, c’était la belle époque où c’était plus facile d’enfoncer la concurrence que de proposer au marché un savoir faire supérieur.

Qui a dit que Microsoft était une boîte malhonnête remplie de bras cassés ? :o