Ingo Molnar presentó la segunda versión de un conjunto de parches que pueden reducir significativamente el tiempo de reconstrucción del kernel al reestructurar la jerarquía de los archivos de encabezado y reducir el número de dependencias cruzadas. La nueva versión se diferencia de la primera versión propuesta hace unos días al estar adaptada para el kernel 5.16-rc8, agregando optimizaciones adicionales e implementando soporte para compilar usando el compilador Clang. Al usar Clang, la aplicación de parches redujo el tiempo de compilación en un 88 % o un 77 % en términos de consumo de recursos de CPU. Al reconstruir completamente el kernel con el comando “make -j96 vmlinux”, el tiempo de compilación se redujo de 337.788 a 179.773 segundos.
La nueva versión también resuelve el problema con los complementos de GCC, corrige los errores identificados durante el proceso de revisión inicial y unifica las declaraciones duplicadas de la estructura "task_struct_per_task". Además, se continuó con la optimización del archivo de encabezado linux/sched.h y se implementó la optimización de los archivos de encabezado del subsistema RDMA (infiniband), lo que permitió reducir aún más el tiempo de compilación en un 9% en comparación con la primera versión. de los parches. El número de archivos C del kernel que incluyen el archivo de encabezado linux/sched.h se ha reducido del 68% al 36% en comparación con la primera versión de los parches (del 99% al 36% en comparación con el kernel original).
Fuente: opennet.ru