Intel a publié une nouvelle série de correctifs pour ses pilotes Linux qui promettent d’améliorer les performances de ses processeurs hybrides Alder Lake en optimisant l’utilisation des cœurs de (P) performance et (E) efficacité.
Lorsqu’Intel a sorti ses processeurs Core ‘Alder Lake’ de 12e génération plus tôt cette année, il s’est rapidement avéré que les nouveaux processeurs fonctionnent mieux sous Windows que sous Linux. Contrairement à Windows 11, Linux ne prend pas correctement en charge la technologie Thread Director d’Intel basée sur l’interface de rétroaction matérielle améliorée (HFI), qui permet au système d’exploitation d’utiliser correctement les cœurs Golden Cove hautes performances et Gracemont économes en énergie.
À l’heure actuelle, le noyau Linux décide quand utiliser les cœurs P ou E à l’aide du pilote ITMT/Turbo Boost Max 3.0 qui s’appuie sur les informations exposées par le firmware, rapporte Phoronix. Essentiellement, cela signifie que sous Linux, le système d’exploitation préfère dans de nombreux cas les cœurs les plus rapides (c’est-à-dire les Golden Coves à des fréquences élevées) et sous-utilise les cœurs économes en énergie.
En revanche, HFI communique les performances numériques et les capacités d’efficacité énergétique numérique de chaque cœur de processeur dans une plage de 0 à 255 au système d’exploitation en temps réel. Supposons que l’efficacité des performances ou des capacités énergétiques d’un processeur soit de 0. Dans ce cas, le matériel s’adapte dynamiquement au mélange d’instructions actuel et recommande de ne programmer aucune tâche sur un tel cœur pour des raisons de performances, d’efficacité énergétique ou thermiques, respectivement.
Voici comment Intel le décrit :
L’interface Intel Hardware Feedback (HFI) fournit des informations sur les performances et l’efficacité énergétique de chaque CPU du système. Il utilise une table partagée entre le matériel et le système d’exploitation. Le contenu du tableau peut être mis à jour à la suite de modifications des conditions de fonctionnement du système (par exemple, atteinte d’une limite thermique) ou de l’action de facteurs externes (par exemple, modifications de la puissance thermique de conception).
Les informations fournies par HFI sont spécifiées en tant que capacités numériques sans unité par rapport aux autres processeurs du système. Ces capacités ont une gamme de [0-255] où des nombres plus élevés représentent des capacités plus élevées. L’efficacité énergétique et les performances sont signalées dans des capacités distinctes. Si l’efficacité des performances ou des capacités énergétiques d’un processeur est de 0, le matériel recommande de ne planifier aucune tâche sur ce processeur pour des raisons de performances, d’efficacité énergétique ou thermiques, respectivement.
Le noyau ou l’espace utilisateur peut utiliser les informations du HFI pour modifier le placement des tâches et/ou ajuster les limites de puissance. Ce patchset se concentre sur l’espace utilisateur. Le cadre de notification thermique est étendu pour relayer les mises à jour de la capacité du processeur. Ainsi, un démon de l’espace utilisateur peut affiner les charges de travail avec certains processeurs et/ou processeurs hors ligne dont les capacités sont nulles.
La fréquence des mises à jour HFI est spécifique à chaque modèle de processeur. Sur certains systèmes, il n’y a qu’une seule mise à jour HFI au démarrage. Sur d’autres systèmes, il peut y avoir des mises à jour toutes les dizaines de millisecondes. Afin de ne pas submerger l’espace utilisateur avec trop de mises à jour, elles sont limitées à une mise à jour tous les jiffies CONFIG_HZ.
Les nouveaux correctifs sont toujours en cours de révision, il n’est donc pas clair s’ils seront implémentés par le prochain Linux 5.17 ou retardés plus loin en 2022.