Ingo Molnar ha presentato la seconda versione di un set di patch che consente di ridurre significativamente i tempi di ricompilazione del kernel ristrutturando la gerarchia dei file di intestazione e riducendo il numero di dipendenze incrociate. La nuova versione si differenzia dalla prima proposta qualche giorno fa per l'adattamento al kernel 5.16-rc8, aggiungendo ulteriori ottimizzazioni e implementando il supporto per la compilazione tramite il compilatore Clang. Utilizzando Clang, l'uso delle patch ha permesso di ridurre i tempi di compilazione dell'88% o del 77% in termini di consumo di CPU. Ricostruendo completamente il 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 riscontrati durante la revisione iniziale e unifica le dichiarazioni duplicate della struttura "task_struct_per_task". Inoltre, è stata proseguita l'ottimizzazione del file di intestazione linux/sched.h ed è stata implementata l'ottimizzazione dei file di intestazione del sottosistema RDMA (infiniband), il che ha consentito un'ulteriore riduzione del 9% dei tempi di compilazione rispetto alla prima versione delle patch. Il numero di file C del kernel che includono il file di intestazione 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
