Ingo Molnar a soumis aujourd’hui les mises à jour du planificateur destinées au noyau Linux 6.5. Le plus notable avec les modifications du planificateur de processeur est l’amélioration de l’équilibrage de charge SMP (Hyper Threading) pour les processeurs Intel Core d’une conception hybride avec un mélange de cœurs P et E.
Les améliorations du planificateur au profit des processeurs hybrides Intel visent à éviter les migrations de tâches inutiles. La pull request d’aujourd’hui résume élégamment la situation comme suit :
Évitez les migrations inutiles au sein des domaines SMT sur les systèmes hybrides.
Problème :
Sur les systèmes CPU hybrides (processeurs avec un mélange de cœurs SMT à fréquence plus élevée et de cœurs non SMT à fréquence plus basse), sous l’ancien code, les processeurs à priorité inférieure extrayaient les tâches du des cœurs de priorité plus élevée si plus d’un frère SMT était occupé, ce qui entraînait de nombreuses migrations de tâches inutiles.
Solution :
Le nouveau code améliore l’équilibreur de charge pour reconnaître les cœurs SMT avec plus d’un frère occupé et permet aux processeurs de priorité inférieure d’extraire des tâches, ce qui évite les migrations superflues et permet aux cœurs de priorité inférieure d’inspecter tous les frères et sœurs SMT pour la file d’attente la plus occupée.
Ceci n’est qu’une des nombreuses améliorations apportées au noyau Linux par les ingénieurs d’Intel ces dernières années pour bénéficier à Alder Lake et aux processeurs plus récents avec la conception hybride. Dans l’ensemble, Alder Lake et les versions plus récentes se sont bien comportées sous Linux, mais il peut parfois y avoir un comportement bizarre du cœur P/E ainsi que la quête sans fin d’Intel pour optimiser davantage leurs performances sous Linux.
Le scheduler pull ajoute également une nouvelle fonctionnalité de boost exécutable pour Energy Aware Scheduling (EAS) pour prendre en compte la contention du CPU dans la fréquence, l’utilisation maximale de l’EAS et la sélection du CPU le plus occupé pour l’équilibrage de charge. À son tour, cette accélération exécutable peut améliorer l’utilisation du processeur pour certaines charges de travail.