Linux si avvicina alla compilazione completa del kernel in appena 10 secondi

Nuove patch per Kbuild riducono i tempi di compilazione del kernel Linux: l'obiettivo delle build complete da 10 secondi si avvicina.
Linux si avvicina alla compilazione completa del kernel in appena 10 secondi

Il tempo necessario per compilare il kernel Linux continua a ridursi grazie a interventi mirati sul sistema di build e a macchine capaci di offrire enormi quantità di parallelismo.

Il lavoro descritto da LavX News mostra un caso interessante anche per l’impiego dell’Intelligenza Artificiale nell’analisi del codice: un Large Language Model ha aiutato a individuare alcune operazioni inefficienti, mentre la validazione delle modifiche è rimasta nelle mani dello sviluppatore.

Le ottimizzazioni interessano Kbuild e diverse fasi della generazione del kernel, con l’obiettivo di sfruttare meglio CPU, memoria e storage. I risultati ottenuti su una piattaforma server mostrano che una compilazione minimale può ormai avvicinarsi alla soglia dei 10 secondi, anche se quel risultato dipende fortemente dalla configurazione hardware utilizzata.

Kbuild elimina lavoro seriale durante la compilazione

Il cuore dell’intervento è Kbuild, l’infrastruttura che gestisce configurazione, dipendenze e compilazione del kernel. L’analisi ha evidenziato diverse fasi nelle quali il parallelismo disponibile non veniva sfruttato completamente. Le patch intervengono, tra gli altri, su kallsyms, modpost, objtool e sul supporto alla compilazione Rust, cercando di distribuire meglio le operazioni tra i thread disponibili.

La serie comprende 23 patch e produce risultati differenti in base al tipo di configurazione. Con allmodconfig, che abilita una quantità molto ampia di componenti, la riduzione del tempo arriva al 36%. Le compilazioni incrementali possono invece beneficiare di diminuzioni fino al 70%, mentre le build senza modifiche al codice arrivano a una riduzione vicina al 90%. I risultati sono stati sottoposti a verifiche manuali per controllare sia il processo di compilazione sia il comportamento dei kernel prodotti.

Nel lavoro di ottimizzazione, lo sviluppatore Lorenzo Stoakes ha utilizzato un Large Language Model per esaminare i colli di bottiglia, eseguire compilazioni e valutare possibili modifiche. Il modello non ha però prodotto patch accettate senza controllo: le proposte sono state analizzate, corrette e in alcuni casi riscritte. La procedura mostra un utilizzo dell’AI come strumento di esplorazione tecnica, non come sostituto della revisione del codice.

Tra gli interventi più rilevanti figura la riduzione di alcune operazioni seriali che diventavano particolarmente evidenti sulle macchine con un numero elevato di core. L’ottimizzazione del sistema di build assume infatti un’importanza crescente quando la potenza di calcolo aumenta: se una parte del lavoro rimane vincolata a un singolo thread, l’aggiunta di core produce benefici sempre più limitati.

Hardware server spinge il kernel verso i 10 secondi

Le misurazioni sono state eseguite su un sistema con due AMD EPYC 9575F, per complessivi 128 core e 256 thread, affiancati da 1,5 TB di memoria DDR5-6400 e da un SSD Samsung PM1743 da 3,84 TB con interfaccia PCIe 5.0. Il sistema operativo utilizzato nei test era Ubuntu 26.04 LTS. Una piattaforma di questo livello rende il benchmark molto diverso dalle compilazioni effettuate su una normale workstation.

Con la configurazione defconfig, il tempo è passato da oltre 22 secondi a circa 15 secondi sulla stessa macchina. Nel test allmodconfig, invece, il risultato è sceso da 169 a 134 secondi. La differenza tra i due valori evidenzia anche quanto il carico scelto possa modificare radicalmente il comportamento della compilazione.

Il possibile passaggio sotto i 10 secondi viene associato a hardware futuro ancora più potente. Phoronix ha indicato i processori AMD Zen 6 EPYC 9686F, insieme a memoria MRDIMM e storage PCIe 6.0, come una combinazione potenzialmente adatta a raggiungere quel risultato. Si tratta però di una proiezione: le prestazioni effettive dipenderanno dalle caratteristiche definitive delle piattaforme e dalla capacità di Kbuild di sfruttare le risorse disponibili.

Il valore di queste ottimizzazioni non riguarda soltanto il numero visualizzato dal cronometro. Una compilazione più rapida consente agli sviluppatori di aumentare il numero di iterazioni tra una modifica e la verifica del risultato, riducendo il tempo speso in attesa. Il beneficio resta però legato all’hardware: sulle workstation con meno core, memoria più lenta o storage meno performante, la distribuzione del lavoro può produrre vantaggi differenti. È proprio questa variabilità a rendere le ottimizzazioni di Kbuild interessanti anche oltre il benchmark estremo.

Ti consigliamo anche

Link copiato negli appunti