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

Nathan Le Gohlisse
Spécialiste Hardware
29 septembre 2022 à 15h37
15
© 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

Spécialiste Hardware

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, i...

Lire d'autres articles

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 !

Lire d'autres articles
Vous êtes un utilisateur de Google Actualités ou de WhatsApp ? Suivez-nous pour ne rien rater de l'actu tech !
google-news

A découvrir en vidéo

Rejoignez la communauté Clubic S'inscrire

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.

S'inscrire

Commentaires (15)

MHC
Intel n’a pas payé assez cher pour maintenir ce « bug » ? #PrivateJoke
tux.le.vrai
« un impact négatif important »<br /> Bonne nouvelle en théorie,<br /> même si ça tourne déjà fort avec les Ryzen sous linux.<br /> Avec ma Linux Mageia, je lance des gros jeux et ça tourne plein pot.<br /> ç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.<br /> L’attitude à la mode à l’époque était celle d’IBM-je-t’explique-comment-tu-dois-travailler.<br /> 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.<br /> 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 ».<br /> 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 <br /> 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?<br /> Ils ont débarqués en 2001/2 si mes souvenirs sont bons.<br /> 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.<br /> Qui a dit que Microsoft était une boîte malhonnête remplie de bras cassés ? :o
cid1
La même chose doit exister (Où sous une autre forme) sur les Laptops et Desktop Intel, j’ai installé Linux Mint en double-boot, sur mon Desktop Intel, sous Windows dix, et Linux tourne très lentement. Il met cinq minutes à démarrer, c’est à ce point handicapant que je ne vais plus sur Linux. De là à croire que MS fait quelque chose au PC, il n’y a qu’un pas que je franchis allègrement. Mon laptop, lui, ne veut pas d’un autre SSD, si un jour mon SSD claque je ne pourrais pas y mettre un autre SSD.<br /> Bizarre, vous avez dit bizarre ?
Feunoir
Pourquoi 90? On est en 2022, l’article parle de 20ans et que l’ACPI est créé en 96 et parle ensuite « de la fin des années 90 » donc 1999 ça semble ok.<br /> Petite pensée pour mon Athlon Barton 3200+, mon dernier cpu monocoeur qui m’a permis d’éviter le Pentium4 et qui a pris sa retraite vers 2006 pour cause de core2duo d’Intel (et il a fallu attendre le Ryzen 2600 pour que je retourne timidement vers Amd (avant d’y aller + franchement avec le 5900X))
xylf
J’ai souvenir que l’acpi a été l’enfer à coder sous Linux (et pas forcément mieux sur les Unix). Cependant, ayant toujours été sur AMD, je n’ai jamais remarqué de différence notable de perf entre win et Linux. Et l’ACPI etait moins problématique sur les desktop par rapport au laptop.<br /> En tout cas c’est une bonne chose que ce soit corrigé
StephaneGotcha
« ralentissement » « gain substantiel » « milliers de cycles »<br /> Dommage qu’on ait pas un VRAI exemple de perte/gain de performance CPU.<br /> Parce que la aucune idée d’est ce qu’on parle de 2% ou de 18%
TNZ
Shadow of the tomb raider :<br /> Linux 5.19.12 : 62 fps<br /> Linux 6.0 : 68 fps → gain 10% puisque tu veux des chiffres
Voir tous les messages sur le forum
Haut de page

Sur le même sujet