Ingo Molnar ha presentato la seconda versione di una serie di patch che possono ridurre significativamente il tempo di ricostruzione del kernel ristrutturando la gerarchia dei file header e riducendo il numero di dipendenze incrociate. La nuova versione differisce dalla prima proposta pochi giorni fa essendo stata adattata al kernel 5.16-rc8, aggiungendo ulteriori ottimizzazioni e implementando il supporto per la compilazione utilizzando il compilatore Clang. Quando si utilizza Clang, l'applicazione delle patch riduce il tempo di compilazione dell'88% o del 77% in termini di consumo di risorse della CPU. Durante la ricostruzione completa del kernel con il comando “make -j96 vmlinux”, il tempo di compilazione è stato ridotto da 337.788 a 179.773 secondi.
La nuova versione risolve anche il problema con i plugin GCC, corregge gli errori identificati durante il processo di revisione iniziale e unifica le dichiarazioni duplicate della struttura “task_struct_per_task”. Inoltre è proseguita l'ottimizzazione dell'header file linux/sched.h ed è stata implementata l'ottimizzazione degli header file del sottosistema RDMA (infiniband) che ha consentito di ridurre ulteriormente i tempi di build del 9% rispetto alla prima versione delle toppe. Il numero di file del kernel C che includono il file header linux/sched.h è stato ridotto dal 68% al 36% rispetto alla prima versione delle patch (dal 99% al 36% rispetto al kernel originale).
Fonte: opennet.ru