Une contribution au noyau assistée par l’IA

Linus Torvalds a utilisé un assistant de programmation fondé sur un LLM pour travailler sur une série de correctifs du noyau Linux, un moment notable pour l’un des projets de logiciels open source les plus influents. Dans la soumission accompagnant ce travail, Torvalds a indiqué que le code, les programmes de test, la revue de la liste de correctifs et la première version du texte explicatif avaient été réalisés avec Claude Code d’Anthropic, sous sa direction.

Cette révélation ne décrit pas un système autonome modifiant Linux de manière indépendante. Elle décrit plutôt une assistance IA utilisée dans le cadre d’un processus piloté par un développeur pour résoudre un problème technique précis. Torvalds a publié le travail sous la forme d’une série de huit correctifs sur une branche de son dépôt appelée noref-filemap-read-with-llm.

Les correctifs ciblent un problème de performances connu de Linux lié aux petites lectures du même fichier mis en cache sur des systèmes dotés de plusieurs cœurs et processeurs. Le problème est connu depuis 2024 et les tentatives précédentes ne l’avaient pas résolu.

Le goulot d’étranglement se trouve dans le cache de pages

Linux utilise son cache de pages pour conserver les données des fichiers en mémoire. Cela permet généralement aux programmes d’éviter des accès répétés au stockage, mais l’origine de cette série de correctifs est un autre type de coût : la coordination entre les cœurs du processeur.

Lorsque plusieurs threads effectuent de façon répétée de petites lectures dans le même fichier mis en cache, ils acquièrent et libèrent des références vers le folio contenant ces données. Ces mises à jour du compteur de références nécessitent des écritures atomiques dans une ligne de cache partagée. Sur un système multicœur, le trafic qui en résulte peut pousser les cœurs à se disputer cette ligne et ralentir la charge de travail.

L’effet peut être particulièrement marqué lorsque les lectures sont petites et fréquentes. L’exemple rapporté utilisait huit threads effectuant des appels pread() de 16 octets sur la même page, dans un ordinateur portable équipé d’un Intel Core i7-8565U à quatre cœurs et huit threads. Dans ce test, la ligne de cache partagée représentait 99,92 % de l’activité de charge inter-cœurs mesurée et classée comme Hit in Modified cache line, ou HITM.

Cette mesure montre pourquoi un détail aussi bas niveau qu’une mise à jour du compteur de références peut avoir un impact disproportionné. Les lectures individuelles sont minuscules, mais la synchronisation répétée sur une mémoire partagée peut devenir le coût dominant lorsque plusieurs threads d’exécution se disputent les mêmes données sous-jacentes.

Pourquoi cette révélation est importante

Le développement de Linux obéit à des exigences rigoureuses en matière de revue et de tests, notamment pour les changements qui touchent à la gestion de la mémoire et au comportement du cache de fichiers. La déclaration de Torvalds est donc importante moins parce que l’IA est intervenue que parce qu’il a explicitement décrit son rôle dans la génération du code, des tests, du matériel de revue et d’une première version explicative pour une série de correctifs du noyau.

Le récit offre également une image plus concrète de la manière dont les outils de programmation IA peuvent être utilisés en programmation système. L’assistant a été appliqué à un problème de performances délimité, au comportement mesurable, avec des programmes de test et un processus de revue fondé sur les correctifs. Torvalds est resté la personne dirigeant le travail et soumettant les changements.

Cette distinction est importante pour évaluer l’affirmation. La source ne présente pas les correctifs comme un cas où un modèle aurait remplacé les mainteneurs du noyau. Elle présente l’IA comme un outil utilisé sous la direction de l’auteur pour traiter un problème complexe de mémoire cache multicœur.

Un cas d’essai pour l’IA dans les logiciels d’infrastructure

Le code d’infrastructure constitue un environnement exigeant pour l’assistance à la programmation. Une modification du noyau doit faire plus que paraître plausible : elle doit tenir compte de la concurrence, des caractéristiques de performance et d’interactions qui ne peuvent apparaître que sous certaines charges de travail. Dans ce cas, le travail est lié à un mécanisme de contention clairement identifié dans le cache de pages et à un scénario de référence concret.

La série de correctifs montre aussi que l’utilisation de l’IA dépasse la simple complétion de code. La révélation de Torvalds comprend des programmes de test, un travail de revue et la première version du texte d’accompagnement. Il s’agit de composantes distinctes du travail d’ingénierie, et la déclaration suggère que l’assistant a été utilisé pour chacune d’elles, tandis que l’orientation technique restait humaine.

La question de savoir si cette approche deviendra courante dans le développement de Linux sera tranchée par le processus technique normal du projet : examen de l’ensemble des correctifs, tests et revue par les mainteneurs et les contributeurs. Le résultat immédiat est plus limité, mais il reste important. L’un des mainteneurs open source les plus en vue a publiquement documenté l’utilisation d’un assistant LLM pour une correction proposée à un véritable problème de performances du noyau.

Pour les développeurs qui suivent l’adoption pratique des outils d’IA, l’épisode fournit un cadre utile. La technologie a été appliquée à un problème système précis et mesurable, non pour remplacer la responsabilité d’ingénierie, mais comme assistant dans la production et l’examen d’une série de correctifs sous la direction de la personne qui en répond.

Cet article s’appuie sur un reportage de ZDNET. Lire l’article original.

Originally published on zdnet.com