Processar o objeto vmlinux.o com objtool foi a etapa que mais intensificou a memória do processo de construção do kernel do Linux. Patches anteriores já funcionaram para reduzir esse uso de memória objtool ao compilar o kernel do Linux e uma grande série de patches agora definida para o Linux 6.5 está definida para reduzir drasticamente o uso máximo de heap.
Ao criar uma compilação de kernel Linux de depuração completa (allyesconfig) com CONFIG_DEBUG_INFO ativado, o DWARF cria quase 200 milhões de realocações. Atualmente, esta grande compilação de depuração do kernel do Linux pode levar ao uso de pilha de pico objtool atingindo 53 GB. Mas, graças a essas otimizações que vêm com o Linux 6.5, o pico de uso do heap cairá para cerca de 25 GB.
Para cenários menos intensos, também há benefícios dessas otimizações objtool. Uma compilação de kernel do tipo distro com Indirect Branch Tracking (IBT) ativado verá o uso de heap de pico do objtool cair de 4,2 GB para cerca de 2,8 GB.
Além de diminuir drasticamente a pilha de pico uso, essas otimizações de objtool também levam a tempos de execução mais rápidos e, por sua vez, tempos de compilação de kernel mais curtos.
É um belo conjunto de melhorias objtool feitas por Josh Poimboeuf. Essas alterações, juntamente com algumas melhorias de depuração e aprimoramentos do desbobinador, foram enviadas esta manhã como parte das alterações do objtool para o kernel Linux 6.5.