Un ensemble de 2 297 correctifs pour le noyau Linux ont été soumis hier, dimanche 2 janvier 2022, par Ingo Molnar, l'un des développeurs de longue date du kernel de l’OS open source. L’information a été relayée dans la foulée par les sites spécialisés, Phoronix et Tuxmachines, notamment. Dans un billet, Ingo Molnar présente cette première version publique de ses nouveaux « en-têtes rapides » (fast-headers) pour le kernel sur lesquels il dit travailler depuis la fin de l’année 2020.

L’objectif est double, expose le développeur. D’une part, cela va permettre d’accélérer les compilations du kernel, à la fois pour les builds « absolues » et pour les builds incrémentales. D’autre part, il s’agit de pouvoir découpler les définitions de type sous-systèmes et API les unes des autres. L’arborescence fast-headers est constituée de plus de 25 sous-arborescence internes, couvrant plus 2200 commits qui sont accessibles sur git.kernel.orgSuivant les configurations, cette arborescence apporte une amélioration de performances située entre plus de 50 et 80% sur la construction de builds absolues sur les architectures supportées. « Il s’agit d’une avancée majeure en termes d’efficacité et de performance de la construction du noyau Linux », pointe Ingo Molnar.

Parvenir à résoudre « l’enfer des dépendances »

« Comme la plupart des développeurs du noyau le savent, il y a environ 10 000 en-têtes .h principaux dans le noyau, dans les hiérarchies include/ et arch/*/include/ », rappelle Ingo Molnar. « Au cours des 30 dernières années, ils se sont développés en un ensemble compliqué et douloureux de dépendances croisées que nous appelons affectueusement ‘l’enfer des dépendances’ ».

Cette série massive de modifications est probablement la plus importante fonctionnalité du noyau par la taille du code, estime le site Phoronix, géré par l’ingénieur Linux Michael Larabel. Ce dernier note que les améliorations sur les temps de build du noyau semblent particulièrement alléchantes. Pour l’instant, les correctifs sont soumis sous la forme de « request for comments ».