GNU/Linux >> Tutoriales Linux >  >> Linux

Pruebas de integración continua para el kernel de Linux

Con 14 000 conjuntos de cambios por lanzamiento de más de 1700 desarrolladores diferentes, está claro que el kernel de Linux se mueve rápidamente y trae mucha complejidad. Los errores del kernel van desde pequeñas molestias hasta problemas mayores, como bloqueos del sistema y pérdida de datos.

A medida que crece el llamado a la integración continua (CI) para más y más proyectos, el equipo de integración continua del kernel (CKI) sigue adelante con una sola misión:evitar que los errores se fusionen en el núcleo.

Problemas de prueba de Linux

Muchas distribuciones de Linux prueban el kernel de Linux cuando es necesario. Esta prueba a menudo ocurre cerca del momento del lanzamiento o cuando los usuarios encuentran un error.

A veces aparecen problemas no relacionados, y los mantenedores se esfuerzan por encontrar qué parche en un conjunto de cambios lleno de decenas de miles de parches causó el nuevo error no relacionado. El diagnóstico del error puede requerir hardware especializado, una serie de factores desencadenantes y conocimientos especializados de esa parte del kernel.

CI y Linux

La mayoría de los repositorios de software modernos tienen algún tipo de prueba de CI automatizada que prueba las confirmaciones antes de que lleguen al repositorio. Esta prueba automatizada permite a los mantenedores encontrar problemas de calidad del software, junto con la mayoría de los errores, al revisar el informe de CI. Los proyectos más simples, como una biblioteca de Python, vienen con toneladas de herramientas para facilitar este proceso.

Linux debe configurarse y compilarse antes de cualquier prueba. Hacerlo requiere tiempo y recursos informáticos. Además, ese kernel debe arrancar en una máquina virtual o en una máquina completa para realizar pruebas. Obtener acceso a ciertas arquitecturas de sistemas requiere gastos adicionales o una emulación muy lenta. A partir de ahí, alguien debe identificar un conjunto de pruebas que activan el error o verifican la corrección.

Cómo funciona el equipo CKI

El equipo de CKI en Red Hat actualmente sigue los cambios de varios núcleos internos, así como de los núcleos ascendentes, como el árbol estable del núcleo. Observamos dos eventos críticos en cada repositorio:

  1. Cuando los mantenedores fusionan solicitudes de incorporación de cambios o parches, y las confirmaciones resultantes en el repositorio cambian.

  2. Cuando los desarrolladores proponen cambios para la fusión a través de parches o la cola de parches estable.

A medida que ocurren estos eventos, la automatización entra en acción y las canalizaciones de GitLab CI comienzan el proceso de prueba. Una vez que la canalización ejecuta los scripts de Linting, fusiona los parches y compila el kernel para múltiples arquitecturas, comienza la prueba real. Compilamos núcleos en menos de seis minutos para cuatro arquitecturas y enviamos comentarios a la lista de correo estable generalmente en dos horas o menos. Cada mes se ejecutan más de 100 000 pruebas de kernel y se han completado más de 11 000 canalizaciones de GitLab (desde enero de 2019).

Cada núcleo se inicia en su arquitectura nativa, que incluye:

● aarch64:ARM de 64 bits, como Cavium (ahora Marvell) ThunderX.

● ppc64/ppc64le:Sistemas IBM POWER Big y Little Endian.

● s390x:mainframes IBM Zseries.

● x86_64:estaciones de trabajo, portátiles y servidores Intel y AMD.

Múltiples pruebas se ejecutan en estos núcleos, incluido el Proyecto de prueba de Linux (LTP), que contiene una miríada de pruebas que utilizan un arnés de prueba común. Mi equipo de CKI abrió más de 44 pruebas con más en camino.

Participe

El esfuerzo de prueba del kernel ascendente crece día a día. Muchas empresas ofrecen resultados de prueba para varios núcleos, incluidos Google, Intel, Linaro y Sony. Cada esfuerzo se centra en aportar valor al núcleo ascendente, así como a la base de clientes de cada empresa.

Si usted o su empresa quieren unirse al esfuerzo, vengan a la Linux Plumbers Conference 2019 en Lisboa, Portugal. Únase a nosotros en el hackfest Kernel CI durante los dos días posteriores a la conferencia e impulse el futuro de las pruebas rápidas del kernel.

Para obtener más detalles, revise las diapositivas de mi charla sobre el Texas Linux Fest 2019.


Linux
  1. Una guía de la terminal de Linux para principiantes

  2. Analizar el kernel de Linux con ftrace

  3. 8 consejos para la línea de comandos de Linux

  4. Linux:¿buscar el controlador de Linux para auriculares en el árbol del kernel?

  5. Linux:¿habilitar Iommu en el kernel para el paso de tarjetas gráficas?

Cómo el kernel de Linux maneja las interrupciones

20 herramientas de productividad para la terminal Linux

3 lectores de libros electrónicos para el escritorio de Linux

Cómo verificar la versión del kernel en Linux

GalliumOS:la distribución de Linux para Chromebooks

Trabajar con el kernel en tiempo real para Red Hat Enterprise Linux