AccueilActualités informatiqueLinux : intégration des correctifs centraux en temps réel après 17 ans

Linux : intégration des correctifs centraux en temps réel après 17 ans

Le cœur de la prise en charge du temps réel pour Linux a finalement fait son entrée dans le noyau officiel. Cependant, il n’est pas encore possible d’y activer le support en temps réel, car il existe encore quelques chantiers de taille moyenne et toutes sortes de petits chantiers. Les développeurs du projet, qui a été retardé par un manque d’argent, ont discuté de ces questions lors de la Linux Plumbers Conference 2021, qui se déroule actuellement. Ils ont également discuté de la manière dont ils souhaitent entretenir l’ensemble à l’avenir.

Sommaire

La prise en charge du temps réel dans le noyau Linux a franchi une étape extrêmement importante l’avant-dernier jour du mois d’août : Linus Torvalds a intégré la majeure partie de l’infrastructure de verrouillage nécessaire à une prise en charge adéquate du temps réel dans la principale branche de développement de Linux. Jusqu’à présent, cela a été au cœur du « noyau RT » (également connu sous le nom de « patch RT » ou « branche RT »), où les développeurs du projet PREEMPT_RT collectent, maintiennent et améliorent depuis longtemps les correctifs du code source qui aident Linux à obtenir des fonctionnalités en temps réel.

Les modifications apportées aux techniques de verrouillage, telles que les spinlocks, les mutexs et les rwlocks, constituent en fin de compte le cœur du projet PREEMPT_RT lancé à l’automne 2004 sous un autre nom. Les ajustements qui ont maintenant été intégrés s’élèvent à un total de soixante-dix correctifs. Ils permettent à un noyau compilé avec le support temps réel d’interrompre à tout moment et sans retard majeur la quasi-totalité des tâches qu’il est en train d’effectuer afin de se consacrer temporairement à des choses plus importantes.

Ceci est crucial pour l’assistance en temps réel : Linux peut ainsi porter rapidement son attention à tout moment sur des programmes qui doivent toujours accomplir une certaine tâche dans un temps prédéfini – c’est-à-dire même si quelque chose d’insignifiant sollicite actuellement beaucoup le système et crée ainsi des circonstances défavorables. Un marqueur sur le processus détermine quels programmes le noyau doit préférer. Pour de nombreux PC et surtout pour les serveurs, cela n’a cependant aucun intérêt, car la plus grande réactivité signifie que les autres tâches sont interrompues plus fréquemment et s’exécutent donc plus lentement.

Le noyau PREEMPT_RT permet à Linux de s’interrompre lui-même à beaucoup plus d’endroits, mais cela ne suffit pas : certaines zones de code doivent être exécutées par le noyau en une seule fois pour garantir l’intégrité des données en cours de traitement dans les systèmes multiprocesseurs.

De nombreuses zones de ce type entraînant des temps d’attente plus longs ont été trouvées dans l’allocateur de mémoire SLUB, qui alloue de petites zones de RAM en interne dans le noyau. Les causes de ce problème ont été éliminées par une série de plus de 30 correctifs que Torvalds a intégrés dans la branche de développement principale de Linux quelques jours après les changements de verrouillage.

Les ajustements seront donc inclus dans Linux 5.15, qui devrait être publié le 1er ou le 8 novembre. Son code contient également les bases pour activer le support temps réel déjà intégré dans Linux 5.3. Néanmoins, l’option ne peut toujours pas être activée lors de la compilation d’un noyau.

Ceci est dû à d’autres parties ininterrompues du code Linux qui sont encore connues pour causer des temps d’attente indûment longs qui interféreraient avec l’utilisation en temps réel. L’une d’entre elles est l’infrastructure printk, par laquelle le noyau accepte et émet des messages de journal. Les développeurs de PREEMPT_RT ont considérablement amélioré la situation au cours de l’année dernière et ont pu intégrer un autre changement important dans Linux 5.15 ; en même temps, cependant, d’autres travaux sont encore en attente. Les détails peuvent être trouvés dans les diapositives et l’enregistrement vidéo d’une conférence donnée par le développeur à l’origine des modifications, mardi, lors de la conférence Linux Plumbers 2021.

Outre les travaux d’impression, il existe encore de nombreux petits chantiers de construction. Cela devient évident lorsqu’on regarde la version de préversion du Linux 5.15-rt en temps réel, pour lequel les développeurs n’appliquent « que » 175 correctifs, modifient environ 215 fichiers et, de ce fait, insèrent 1350 lignes et en suppriment 2650 – c’est environ une centaine de correctifs de moins qu’avec Linux 5.14-rt (260 fichiers modifiés, 3700 lignes insérées, 7450 lignes supprimées). Toutefois, certains correctifs ne sont pertinents que pour certains domaines d’application ou certaines architectures de processeurs.

Les développeurs ont discuté de certains de ces problèmes et d’autres dans un aperçu de l’état des correctifs RT mardi. Là, « cpu_chill() » et le comportement de NOHZ ont été abordés comme deux autres problèmes de taille moyenne. Entre les lignes, cependant, on pourrait entendre que même les développeurs n’osent pas prédire combien de temps cela prendra.

En fin de compte, il n’est pas certain que des mois ou des années s’écoulent avant que tous les changements majeurs soient intégrés dans la principale branche de développement de Linux – bien qu’il ait déjà été dit en 2018 et 2019 que ce serait bientôt le cas, mais finalement cela s’est avéré différent. En partie, les problèmes ont simplement été sous-estimés. Un gros problème, cependant, a toujours été le manque d’argent : bien que de nombreuses entreprises utilisent le noyau RT, relativement peu participent activement au développement ou injectent de l’argent. Les développeurs centraux de PREEMPT_RT ont donc dû reporter plusieurs fois le travail sur les correctifs en temps réel et se consacrer à d’autres tâches afin de gagner leur vie.

Dans la discussion d’état et dans la présentation Maintaining PREEMPT_RT : now and then (diapositives, enregistrement), il a été question en partie de comment continuer à maintenir le support temps réel quand tout l’essentiel est inclus dans le noyau officiel. Après tout, des modifications non informées de n’importe quelle partie du noyau par d’autres développeurs pourraient perturber massivement l’adéquation au temps réel. Le financement des ressources de développement nécessaires à cet effet continuera donc probablement à influencer la vitesse de développement et la qualité des capacités temps réel de Linux à l’avenir.

  • Page thématique « Linux et Open Source » sur heise online


(ovw)

Plus d'articles