Resumo:
A versão de desenvolvimento do Linux 7.4 incorporou um lote de alterações de otimização do Kbuild para acelerar gargalos de thread único e trabalho repetitivo no processo de compilação do kernel. Kbuild é o sistema de compilação do kernel Linux, responsável por organizar as etapas de configuração, compilação e vinculação; as mudanças relevantes foram propostas por Lorenzo Stoakes, engenheiro da Arm e desenvolvedor de kernel de longa data.

As otimizações que foram incorporadas nesta rodada incluem reduzir a sobrecarga de alocação da seção .modinfo na imagem do kernel, acelerar a geração da tabela de símbolos kallsyms, pular a classificação de saída nm quando a ordem é irrelevante, gerar apenas as informações de realocação necessárias no estágio de link final, reescrever mksysmap em linguagem C e mover alguns testes de capacidade do compilador e do vinculador para o estágio Kconfig para armazenar os resultados em cache. Além disso, se o pigz estiver instalado no sistema, ele será usado primeiro para acelerar a compactação gzip. Os ajustes acima reduzem o processamento intermediário de dados, etapas repetidas de sondagem e serialização, respectivamente.
Os primeiros testes de toda a série de patches mostram que as compilações com todos os módulos habilitados são cerca de 36% mais rápidas, as compilações incrementais são cerca de 70% mais rápidas e as compilações autônomas sem reconstrução real são até cerca de 90% mais rápidas. Phoronix então testou o conjunto completo de patches v4 em um servidor AMD EPYC 9575F de soquete duplo e Ubuntu 26.04 LTS. A compilação limpa do kernel x86_64 defconfig foi reduzida de cerca de 22 segundos para 15 a 17 segundos, e a compilação allmodconfig foi reduzida em mais de 30 segundos. No entanto, esses números testam todo o conjunto de patches. O Linux 7.4 atualmente incorpora apenas um lote de alterações. Os benefícios reais precisam esperar que mais patches sejam incorporados antes de serem avaliados.
Esse trabalho de otimização também depende de ferramentas de IA. Stoakes disse que usou um grande modelo de linguagem para ajudar a localizar gargalos na construção e explorar soluções de melhoria, mas parte do código gerado pelo modelo era de baixa qualidade; ele revisou e reescreveu pessoalmente uma grande quantidade de código e verificou manualmente os resultados da compilação, execução de kernels e alterações de desempenho.
Comentários