Les développeurs ont résolu une régression de performance dans l'allocateur Slab du noyau Linux 6.19, qui ralentissait le chargement des modules en raison de modifications des politiques NUMA. Le problème, identifié par des benchmarks, affectait l'efficacité de la gestion mémoire sur les systèmes à haut nombre de cœurs. La correction restaure un comportement d'allocation approprié et a été fusionné dans le noyau principal.
L'allocateur Slab du noyau Linux, chargé de gérer les petites allocations mémoire, a rencontré une régression lors des préparatifs pour la version 6.19. Des changements visant à optimiser les grandes allocations ont perturbé involontairement les politiques d'Accès Mémoire Non Uniforme (NUMA), entraînant des sélections de nœuds sous-optimales et des opérations plus lentes.
Les tests du noyau ont révélé des impacts significatifs, les temps de chargement des modules augmentant jusqu'à 60 % dans certains cas. Cela était particulièrement visible sur des processeurs à haut nombre de cœurs comme l'AMD Ryzen Threadripper, où les benchmarks montraient des temps de compilation du noyau 3-5 % plus lents et des retards en multitâche. Michael Larabel de Phoronix a effectué des bisects pour identifier le problème, le reliant à des problèmes liés à l'ordonnanceur aggravant les inefficacités de Slab.
La régression provenait d'un commit priorisant les nœuds locaux sur les politiques spécifiques aux tâches dans le code Slab. Un patch, documenté dans les Archives du Noyau Linux, rétablit le support NUMA original pour les opérations kmalloc importantes sans introduire de nouvelles vulnérabilités. Le contributeur du noyau Linus Torvalds a insisté sur l'importance de corrections rapides pendant la fenêtre de fusion pour maintenir la stabilité.
La réponse de la communauté a été rapide, avec des pull requests soumis à la liste de diffusion du noyau. La correction, rédigée par des développeurs du noyau, cible les chemins d'allocation pour respecter les politiques prévues et a été intégrée dans le mainline pour la version stable 6.19. Cela s'aligne sur les efforts continus pour équilibrer performance et fiabilité face aux exigences des charges de travail cloud et IA.
Les noyaux précédents, comme 6.18, offraient des optimisations comme une meilleure gestion E/S de Btrfs et XFS, avec des gains jusqu'à 20 % sur les opérations de système de fichiers. La correction Slab assure que ces avantages ne sont pas compromis, surtout dans des environnements intensifs en mémoire comme les serveurs de bases de données et les conteneurs. Des backports vers les branches de support à long terme, y compris 6.18, assurent la stabilité des systèmes de production.