Un correctif oublié a été trouvé dans le noyau Linux et affecte les performances des processeurs AMD

Le noyau Linux 6.0, dont la sortie est prévue lundi prochain, inclut un changement qui résout les problèmes de performances des systèmes fonctionnant sur des processeurs AMD Zen. La source de la baisse de performances s'est avérée être un code ajouté il y a 20 ans pour contourner un problème matériel dans certains chipsets. Le problème matériel a été résolu depuis longtemps et n'apparaît pas dans les chipsets actuels, mais l'ancienne solution de contournement du problème a été oubliée et est devenue une source de dégradation des performances sur les systèmes basés sur des processeurs AMD modernes. Les nouveaux systèmes équipés de processeurs Intel ne sont pas affectés par l'ancienne solution de contournement, car ils accèdent à l'ACPI à l'aide d'un pilote intel_idle distinct, et non du pilote processeur_idle général.

Une solution de contournement a été ajoutée au noyau en mars 2002 pour bloquer l'apparition d'un bug dans les chipsets associé à un mauvais réglage de l'état d'inactivité en raison d'un retard dans le traitement du signal STPCLK#. Pour contourner le problème, l'implémentation ACPI a ajouté une instruction WAIT supplémentaire, qui ralentit le processeur afin que le chipset ait le temps de passer dans un état inactif. Lors du profilage à l'aide des instructions IBS (Instruction-Based Sampling) sur les processeurs AMD Zen3, il a été découvert que le processeur passait beaucoup de temps à exécuter des stubs, ce qui conduisait à une interprétation incorrecte de l'état de charge du processeur et à la définition de modes de veille plus profonds (C- State) par le processeur cpuidle.

Ce comportement se reflète dans les performances réduites sous des charges de travail qui alternent fréquemment entre des états inactif et occupé. Par exemple, lors de l'utilisation d'un correctif qui désactive la manœuvre de contournement, les moyennes du test tbench augmentent de 32191 33805 Mo/s à XNUMX XNUMX Mo/s.

Source: opennet.ru

Ajouter un commentaire