Riassunto:
La versione di sviluppo di Linux 7.4 ha incorporato una serie di modifiche all'ottimizzazione di Kbuild per accelerare i colli di bottiglia a thread singolo e il lavoro ripetitivo nel processo di compilazione del kernel. Kbuild è il sistema di compilazione del kernel Linux, responsabile dell'organizzazione delle fasi di configurazione, compilazione e collegamento; le modifiche rilevanti sono state proposte da Lorenzo Stoakes, un ingegnere Arm e sviluppatore di kernel di lunga data.

Le ottimizzazioni che sono state incorporate in questo round includono la riduzione del sovraccarico di allocazione della sezione .modinfo nell'immagine del kernel, l'accelerazione della generazione della tabella dei simboli di kallsyms, il salto dell'ordinamento dell'output nm quando l'ordine è irrilevante, la generazione delle informazioni di riposizionamento richieste solo nella fase di collegamento finale, la riscrittura di mksysmap in linguaggio C e lo spostamento di alcuni test di capacità del compilatore e del linker nella fase Kconfig per memorizzare nella cache i risultati. Inoltre, se pigz è installato sul sistema, verrà utilizzato per primo per accelerare la compressione gzip. Le regolazioni di cui sopra riducono rispettivamente l'elaborazione intermedia dei dati, i passaggi ripetuti di sondaggio e di serializzazione.
I primi test dell'intera serie di patch mostrano che le build con tutti i moduli abilitati sono circa il 36% più veloci, le compilazioni incrementali sono circa il 70% più veloci e le build no-op senza ricostruzione effettiva sono fino a circa il 90% più veloci. Phoronix ha quindi testato il set completo di patch v4 su un server AMD EPYC 9575F dual-socket e Ubuntu 26.04 LTS. La build pulita del kernel x86_64 defconfig è stata ridotta da circa 22 secondi a 15-17 secondi e la build allmodconfig è stata ridotta di oltre 30 secondi. Tuttavia, questi numeri mettono alla prova l'intero set di patch. Linux 7.4 attualmente incorpora solo una serie di modifiche. Per poter valutare i vantaggi effettivi è necessario attendere l'inclusione di ulteriori patch.
Questo lavoro di ottimizzazione si basa anche su strumenti di intelligenza artificiale. Stoakes ha affermato di aver utilizzato un modello linguistico di grandi dimensioni per individuare i colli di bottiglia nella costruzione ed esplorare soluzioni di miglioramento, ma parte del codice generato dal modello era di scarsa qualità; ha rivisto e riscritto personalmente una grande quantità di codice e ha verificato manualmente i risultati della compilazione, l'esecuzione dei kernel e le modifiche alle prestazioni.
Commenti