Linus Torvalds adopte la mise à niveau Hyper-V de Microsoft pour des temps de démarrage plus rapides dans Linux de nouvelle génération
Alors que les passionnés de Windows et de Linux se livrent souvent à des batailles acharnées au clavier, les développeurs de ces systèmes d’exploitation reconnaissent les forces et les faiblesses de chacun. Microsoft, en particulier, reconnaît cette dynamique et encourage les utilisateurs à expérimenter Linux, notamment via son sous-système Windows pour Linux (WSL).
De plus, Microsoft publie régulièrement des mises à jour visant à améliorer les performances et les fonctionnalités de Linux. Un exemple notable est l’introduction de la virtualisation imbriquée ou de la prise en charge d’Hyper-V imbriquée en novembre 2022. De plus, en septembre de l’année précédente, le créateur de Linux, Linus Torvalds, a accepté les améliorations liées à Hyper-V pour les invités AMD SEV-SNP et les invités Intel TDX qui ont été proposées par Wei Liu, architecte principal chez Azure Machine Learning.
Récemment, Torvalds a approuvé les nouvelles mises à jour Hyper-V de Liu pour Linux 6.12, avec un accent particulier sur les améliorations de performances soulignées par Saurabh Singh Sengar de Microsoft :
Extraire les mises à jour Hyper-V de Wei Liu :
- Optimiser le temps de démarrage en exécutant simultanément hv_synic_init() (Saurabh Sengar)
- Utiliser les aides pour lire les registres de contrôle dans hv_snp_boot_ap() (Yosry Ahmed)
- Intégrer la vérification d’allocation de mémoire dans hv_fcopy_start (Zhu Jun)
La description du patch explique comment la parallélisation de la fonction hv_synic_init() peut améliorer considérablement les temps de démarrage des processeurs dotés d’un grand nombre de cœurs et de nœuds NUMA (accès mémoire non uniforme) :
Optimiser le temps de démarrage en exécutant simultanément hv_synic_init()
Sur un système massif avec 1780 CPU, hv_acpi_init() prend environ 3 secondes pour se terminer, principalement en raison de l’initialisation synchrone séquentielle gérée par hv_synic_init().
En planifiant ces tâches pour qu’elles se produisent simultanément, chaque processeur peut exécuter hv_synic_init() en parallèle, maximisant ainsi le potentiel de plusieurs processeurs.
Cette optimisation entraîne une réduction du temps de démarrage d’environ 2 secondes sur un système CPU 1780, ce qui se traduit par une amélioration d’environ 66 % par rapport à la méthode précédente.
Sengar a également récemment fait une présentation intitulée « Accélération du démarrage du noyau Linux pour les grands systèmes multicœurs », qui aborde les détails de ce correctif et d’autres optimisations en cours. Vous pouvez consulter la présentation ici sur le site Web de la Linux Plumbers Conference (LPC).
Laisser un commentaire