Linus Torvalds accepte la mise à niveau Hyper-V de Microsoft pour que la prochaine génération de Linux démarre plus rapidement
Sayan Sen
Néowin
·
22 septembre 2024 10:12 HAE
· Chaud!
Si les fans de Windows et de Linux aiment se livrer à des guerres de claviers acharnées, les développeurs des systèmes d’exploitation eux-mêmes connaissent les forces et les faiblesses de chacun. Il ne fait aucun doute que Microsoft l’a également compris et qu’il encourage même les utilisateurs à essayer Linux, même en utilisant son sous-système Windows de Linux (WSL).
En outre, l’entreprise propose souvent des mises à niveau destinées à améliorer les performances de Linux ou à accroître ses fonctionnalités. Par exemple, en novembre 2022, Microsoft a proposé la virtualisation imbriquée ou la prise en charge d’Hyper-V imbriquée. Et en septembre de l’année dernière, le patron de Linux, Linus Torvalds, a accepté les améliorations d’Hyper-V liées aux invités AMD SEV-SNP et aux invités Intel TDX qui ont été envoyées par Wei Liu, l’architecte principal de Microsoft chez Azure Machine Learning.
Torvalds a une fois de plus accepté de nouvelles mises à niveau Hyper-V de Liu pour Linux 6.12 et l’une d’entre elles en particulier est plus intéressante du point de vue des performances et a été présentée 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 des aides pour lire les registres de contrôle dans hv_snp_boot_ap() (Yosry Ahmed)
- Ajout d’une 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 le temps de démarrage sur les processeurs avec de nombreux cœurs et des nœuds NUMA (accès mémoire non uniforme) :
Optimiser le temps de démarrage en exécutant simultanément hv_synic_init()
Actuellement, sur un très grand système avec 1780 CPU, hv_acpi_init() prend environ 3 secondes pour se terminer. Cela est dû à l’initialisation synchrone séquentielle de chaque CPU effectuée par hv_synic_init().
Planifiez ces tâches en parallèle afin que chaque processeur exécute hv_synic_init() en parallèle pour tirer pleinement parti de plusieurs processeurs.
Cette solution permet d’économiser environ 2 secondes de temps de démarrage sur un système CPU 1780, ce qui représente une amélioration d’environ 66 % de la logique existante.
Sengar a également fait une présentation récente sur ses découvertes intitulée « Accélération du démarrage du noyau Linux pour les grands systèmes multicœurs » qui approfondit les détails de ce patch et d’autres optimisations en cours. Vous pouvez le trouver ici sur le site Web de la Linux Plumbers Conference (LPC).