GNU/Linux >> Tutoriels Linux >  >> Linux

Tests d'intégration continue pour le noyau Linux

Avec 14 000 ensembles de modifications par version provenant de plus de 1 700 développeurs différents, il est clair que le noyau Linux évolue rapidement et apporte beaucoup de complexité. Les bogues du noyau vont des petits désagréments aux problèmes plus importants, tels que les plantages du système et la perte de données.

Alors que l'appel à l'intégration continue (CI) se développe pour de plus en plus de projets, l'équipe d'intégration continue du noyau (CKI) va de l'avant avec une seule mission :empêcher la fusion des bogues dans le noyau.

Problèmes de test Linux

De nombreuses distributions Linux testent le noyau Linux lorsque cela est nécessaire. Ces tests ont souvent lieu au moment de la publication ou lorsque les utilisateurs trouvent un bogue.

Des problèmes non liés apparaissent parfois, et les responsables se démènent pour trouver quel correctif dans un ensemble de modifications rempli de dizaines de milliers de correctifs a causé le nouveau bogue non lié. Le diagnostic du bogue peut nécessiter un matériel spécialisé, une série de déclencheurs et une connaissance spécialisée de cette partie du noyau.

CI et Linux

La plupart des référentiels de logiciels modernes ont une sorte de test CI automatisé qui teste les validations avant qu'elles ne se retrouvent dans le référentiel. Ces tests automatisés permettent aux mainteneurs de trouver des problèmes de qualité logicielle, ainsi que la plupart des bogues, en examinant le rapport CI. Des projets plus simples, comme une bibliothèque Python, sont fournis avec des tonnes d'outils pour faciliter ce processus.

Linux doit être configuré et compilé avant tout test. Cela prend du temps et des ressources de calcul. De plus, ce noyau doit démarrer dans une machine virtuelle ou sur une machine bare metal pour les tests. L'accès à certaines architectures système nécessite des dépenses supplémentaires ou une émulation très lente. À partir de là, quelqu'un doit identifier un ensemble de tests qui déclenchent le bogue ou vérifier le correctif.

Comment fonctionne l'équipe CKI

L'équipe CKI de Red Hat suit actuellement les modifications de plusieurs noyaux internes, ainsi que des noyaux en amont tels que l'arborescence stable du noyau. Nous surveillons deux événements critiques dans chaque dépôt :

  1. Lorsque les mainteneurs fusionnent des demandes d'extraction ou des correctifs, et que les commits qui en résultent dans le référentiel changent.

  2. Lorsque les développeurs proposent des modifications pour la fusion via patchwork ou la file d'attente des correctifs stables.

Lorsque ces événements se produisent, l'automatisation entre en action et les pipelines GitLab CI commencent le processus de test. Une fois que le pipeline exécute des scripts de lint, fusionne tous les correctifs et compile le noyau pour plusieurs architectures, les vrais tests commencent. Nous compilons les noyaux en moins de six minutes pour quatre architectures et soumettons les commentaires à la liste de diffusion stable généralement en deux heures ou moins. Plus de 100 000 tests de noyau sont exécutés chaque mois et plus de 11 000 pipelines GitLab sont terminés (depuis janvier 2019).

Chaque noyau est démarré sur son architecture native, qui comprend :

● aarch64 : ARM 64 bits, tel que Cavium (maintenant Marvell) ThunderX.

● ppc64/ppc64le :systèmes IBM POWER big et little endian.

● s390x :mainframes IBM Zseries.

● x86_64 :stations de travail, ordinateurs portables et serveurs Intel et AMD.

Plusieurs tests s'exécutent sur ces noyaux, y compris le projet de test Linux (LTP), qui contient une myriade de tests utilisant un harnais de test commun. Mon équipe CKI a ouvert plus de 44 tests et d'autres sont en cours de réalisation.

Participez

L'effort de test du noyau en amont augmente de jour en jour. De nombreuses entreprises fournissent des résultats de test pour divers noyaux, notamment Google, Intel, Linaro et Sony. Chaque effort vise à apporter de la valeur au noyau en amont ainsi qu'à la clientèle de chaque entreprise.

Si vous ou votre entreprise souhaitez vous joindre à l'effort, veuillez venir à la Linux Plumbers Conference 2019 à Lisbonne, au Portugal. Rejoignez-nous au hackfest Kernel CI pendant les deux jours suivant la conférence et pilotez l'avenir des tests rapides du noyau.

Pour plus de détails, consultez les diapositives de ma présentation au Texas Linux Fest 2019.


Linux
  1. Le noyau Linux :Top 5 des innovations

  2. Le cycle de vie des tests du noyau Linux

  3. Distributions Linux populaires pour les tests de sécurité

  4. Linux - Participer à la liste de diffusion du noyau ?

  5. Kali sur le sous-système Windows pour Linux

Comment le noyau Linux gère les interruptions

20 outils de productivité pour le terminal Linux

3 lecteurs de livres électroniques pour le bureau Linux

Comment vérifier la version du noyau sous Linux

GalliumOS :la distribution Linux pour les Chromebooks

Travailler avec le noyau en temps réel pour Red Hat Enterprise Linux