Il kernel Linux 7.3‑rc1 sfiora le 41 milioni di righe: il driver grafico AMD supera quota 6,5 milioni

Linus Torvalds, creatore del kernel Linux e suo principale manutentore, ha pubblicato la prima versione candidata (la cosiddetta RC1, Release Candidate 1, ovvero primo candidato alla versione finale) della versione 7.3 del kernel Linux. Nel messaggio di annuncio Torvalds ha osservato che le modifiche al driver grafico del kernel per le GPU (le Graphics Processing Unit, cioè le unità di elaborazione grafica) di AMD hanno rappresentato circa un terzo dell’intero diff della RC1, cioè l’output del comando diff che mostra tutte le modifiche rispetto alla versione precedente.
Questa quota così rilevante è dovuta ai grandi file di definizione dei registri dell’hardware AMD relativi alla nuova architettura DCN 6.0 (Display Core Next, il sottosistema di visualizzazione delle GPU AMD) e all’integrazione di nuove IP hardware, termine con cui nel settore dei semiconduttori si indicano blocchi funzionali del chip già progettati e riutilizzabili, ciascuno dotato di logica, registri e interfacce proprie. L’aggiunta di nuovi blocchi IP richiede codice dedicato nel driver, contribuendo in modo significativo all’aumento delle dimensioni del diff complessivo.
Ora è interessante esaminare le statistiche del codice nel loro complesso e vedere a quale numero di righe di codice è arrivato il kernel Linux.
Le dimensioni complessive del kernel Linux
La versione del kernel Linux 7.3-rc1 totalizza 40,98 milioni di righe. Questo valore è la somma di 3 categorie distinte rilevate dallo strumento cloc (Count Lines of Code, un programma che conta le righe di codice distinte per linguaggio di programmazione), e precisamente: 5.134.418 righe vuote, circa 4.912.366 righe di commenti al codice e 30.937.090 righe di codice effettivo. Per confronto, lo stato della versione del kernel Linux 7.2 si attestava a 40,42 milioni di righe.
Si tratta di una crescita di circa 560.000 righe rispetto alla versione precedente, un incremento che rientra nell’andamento costante del progetto. E considerando il ritmo attuale di sviluppo, è ragionevole affermare che per la versione del kernel Linux 7.4 si supererà con facilità la soglia di 41 milioni di righe.
Il peso del driver grafico AMD
Soffermiamoci ora sul singolo contributo più consistente. Per la cartella drivers/gpu/drm/amd, che include i file di intestazione, il driver grafico del kernel Linux AMDGPU, il driver di calcolo AMDKFD (l’AMD Kernel Fusion Driver, componente che gestisce il calcolo accelerato su GPU AMD) e il codice correlato alla visualizzazione e ad altri componenti, il totale ammonta a 6,52 milioni di righe.
Questo conteggio esclude il driver classico Radeon DRM (il Direct Rendering Manager, il sottosistema del kernel Linux per l’accesso diretto alla grafica) destinato all’hardware AMD precedente all’architettura GCN (la Graphics Core Next, l’architettura alla base delle GPU moderne di AMD), che si trova in una cartella separata all’interno dell’albero dei sorgenti.
In concreto, circa il 16% dell’intero kernel Linux risulta ormai composto dal codice del driver grafico moderno di AMD. Nello stato della versione del kernel Linux 7.2, la stessa cartella drivers/gpu/drm/amd misurata con cloc si attestava a 6,35 milioni di righe con un aumento di 170 mila righe (+ 2,7%) in una sola versione. Questi valori dimostrano quanto pesi, in termini di volume di codice, ogni nuova generazione di hardware grafico di AMD.
Le parole di Torvalds sul dump dei registri
Linus Torvalds ha scritto nell’annuncio della versione del kernel Linux 7.3-rc1:
It’s also big as an actual diff, and the reason for *that* is not surprising either: this is yet another one of those releases with a big AMD GPU register dump. This time it’s the AMD DCN6 register headers. They’re huge. As usual. That’s what you get when you dump all the hardware definitions as C header #defines. There’s also the accompanying code for the new gen. All in all, that AMD GPU code and header dump accounts for about a third of the whole rc1 patch.
È anche grande come diff effettivo, e il motivo non sorprende: anche questa è una di quelle versioni con un grande dump di registri GPU di AMD. Questa volta si tratta degli header dei registri DCN6. Sono enormi. Come al solito. È quello che ottieni quando riversi tutte le definizioni dell’hardware come #define nei file di intestazione nel linguaggio C. C’è anche il codice di accompagnamento per la nuova generazione.
In sostanza, i file di intestazione dei registri da soli rappresentano quasi un terzo dell’intera patch della RC1. Si tratta di un aspetto ricorrente: con ogni nuova generazione di hardware AMD, il kernel Linux deve incorporare l’elenco completo dei registri di controllo della GPU sotto forma di definizioni nel linguaggio C, e questo produce volumi di codice molto estesi ma per lo più ripetitivi.
Una versione standard, a parte AMD
Linus Torvalds ha aggiunto che, se si esclude questo contributo di AMD, il resto della finestra di unione (il periodo di 2 settimane in cui vengono integrate nel ramo principale le nuove funzionalità, chiamato merge window) appare in larga parte ordinario per dimensioni. Il processo di unione, pur con un numero elevato di commit (singole modifiche registrate nella cronologia del codice), non si è discostato in modo significativo dalle versioni precedenti del kernel Linux.
La versione del kernel Linux 7.3-rc1 si colloca tra le prime versioni candidate più grandi per numero di commit, ma nessuna singola modifica risalta in modo netto dal punto di vista del contenuto funzionale. In altre parole, la versione è grande soprattutto per l’aggiunta dei file di definizione dei registri di AMD, mentre l’evoluzione concreta del kernel Linux segue il suo corso abituale.
Una crescita inarrestabile
I numeri descrivono un progetto di dimensioni colossali e in continua espansione. Già nel gennaio 2025, con la versione del kernel Linux 6.14-rc1, il kernel Linux aveva superato la soglia dei 40 milioni di righe, raddoppiando le proprie dimensioni rispetto al 2015, quando la versione 4.1 conteneva circa 19 milioni di righe. Da allora, ogni ciclo di sviluppo continua ad aggiungere nuove funzionalità, nuovi driver e nuovo supporto hardware.
La progressione dalla versione 7.2 a quella 7.3-rc1, con un incremento di circa 560.000 righe, rientra in questo trend costante. E se per la versione 7.3 il driver grafico AMD ha trainato la crescita con i suoi file di definizione dei registri DCN6, per la versione 7.4 è ormai prevedibile un superamento netto dei 41 milioni di righe, con il driver AMDGPU destinato a consolidare ulteriormente il proprio primato come componente più esteso dell’intero kernel Linux.
Fonte: https://www.phoronix.com/news/Linux-7.3-rc1-Code-Stats
Se vuoi sostenermi, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che ho nel mio sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul mio negozio online, quelle mancanti possono essere comunque richieste.
Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.























