Da scetticismo a sperimentazione: il cambiamento di opinione di Linus Torvalds

Nel 2023 Linus Torvalds, il creatore del kernel Linux, definì l’intelligenza artificiale “90 % marketing” e ne sminuì l’utilità per lo sviluppo di software di basso livello. Oggi, però, la stessa figura leggendaria ha pubblicato un commit nel suo repository personale, dichiarando esplicitamente l’uso di Claude Code, un assistente di programmazione basato su grandi modelli di linguaggio (LLM).

Nel commit, Torvalds afferma: “Il codice sopra, i programmi di test, le verifiche e la prima bozza di questa descrizione sono stati tutti creati, sotto la mia supervisione, con l’aiuto di Claude Code.” Questo passaggio segnala non solo la generazione di righe di codice, ma anche la stesura di test, la preparazione di materiale di verifica e la redazione della documentazione.

Il branch “noref-filemap-read-with-llm” e le otto patch

Il 10 ottobre 2026, nel repository principale del kernel, è comparso un nuovo branch denominato noref-filemap-read-with-llm. Il suffisso “llm” indica chiaramente l’impiego di un modello linguistico avanzato. Il branch contiene otto patch intitolate “mm: read from the page cache without folio references”.

Queste modifiche mirano a risolvere un collo di bottiglia noto da più di due anni, relativo alla gestione dei riferimenti di memoria (folio) nel page cache quando più thread leggono simultaneamente piccoli blocchi di dati dalla stessa pagina.

Il problema del page cache e dei contatori di riferimento

    • Il page cache memorizza i dati dei file letti in RAM per velocizzare gli accessi successivi.
    • Quando più thread richiedono piccoli blocchi (ad esempio 16 byte) dalla stessa pagina, il kernel deve incrementare e decrementare atomicamente il contatore di riferimento del folio.
    • Queste operazioni atomiche generano un elevato traffico di cache line tra i core, con un conseguente aumento dei “HITM” (Hit‑to‑Modified) e del tempo di coordinamento.
    • Il risultato è che il costo della gestione del contatore supera di gran lunga il tempo necessario per leggere i dati stessi.

Nel 2024, il kernel developer Matthew Wilcox aveva già segnalato questo collo di bottiglia, ma la soluzione proposta da Torvalds utilizza ora l’assistenza di Claude Code per implementare una strategia più efficace.

La soluzione proposta: RCU e ritardo nella restituzione del folio

Le otto patch introducono una modifica basata sul meccanismo RCU (Read‑Copy‑Update). Invece di rilasciare immediatamente il folio dopo la lettura, il nuovo codice ritarda il ritorno del buffer al allocatore fino al termine della finestra di grazia RCU.

In pratica:

    • Il thread di lettura copia i dati direttamente nel buffer dell’applicazione, protetto da una sezione critica RCU.
    • Il contatore di riferimento del folio non viene più aggiornato ad ogni operazione di lettura, evitando così le costose operazioni atomiche.
    • Solo al termine della finestra RCU il folio viene restituito, garantendo la coerenza dei dati senza sovraccaricare la cache.

Questa strategia riduce drasticamente il numero di aggiornamenti concorrenti del contatore, diminuendo il carico di sincronizzazione tra i core.

Risultati sperimentali: un triplo aumento del throughput

Torvalds ha testato le patch sul proprio laptop, equipaggiato con un Intel Core i7‑8565U (4 core, 8 thread). Il benchmark consisteva in otto thread che eseguivano richieste pread() di 16 byte sulla stessa pagina di file.

I risultati chiave sono:

    • Il throughput è passato da circa 10 milioni a 33 milioni di operazioni di lettura al secondo (≈ + 230 %).
    • Il numero medio di cicli CPU per lettura è sceso da ~2950 a ~725.
    • Nel caso monothread, la riduzione è più modesta: da ~452‑454 a ~408‑409 cicli per lettura.
    • Il beneficio è più marcato in scenari con più thread, poiché la contesa sui contatori è il fattore limitante principale.

Torvalds ha inoltre osservato che su sistemi con più core o architetture multi‑socket i guadagni potrebbero essere ancora più consistenti.

Limiti e considerazioni sullo stato sperimentale

Nonostante i risultati promettenti, le patch rimangono sperimentali e presentano ancora alcune questioni irrisolte:

    • La soluzione è specifica per carichi di lavoro con piccole letture concorrenti; non è detto che offra vantaggi in scenari di I/O sequenziale o con grandi blocchi.
    • Il ritardo nella restituzione del folio potrebbe introdurre problemi di memoria in situazioni di alta pressione di allocazione.
    • Le modifiche non sono state ancora testate su tutti i filesystem supportati da Linux, né su architetture diverse da x86‑64.
    • Una valutazione più ampia richiederà benchmarking su server, dispositivi embedded e ambienti cloud.

Torvalds ha sottolineato che il commit non intende affermare che l’IA possa sviluppare interi sistemi operativi autonomamente, ma evidenzia come gli LLM possano accelerare specifiche fasi di sviluppo, soprattutto nella generazione di boilerplate e nella stesura di test.

Il ruolo di Claude Code oltre la scrittura del codice

Il commit di Torvalds indica chiaramente che Claude Code ha partecipato a più fasi del ciclo di sviluppo:

    • Generazione della soluzione di implementazione.
    • Creazione di un programma di benchmark per misurare le prestazioni.
    • Redazione di test di verifica e di documentazione.
    • Stesura della prima bozza del messaggio di commit.

Questo approccio dimostra come un LLM possa fungere da co‑programmatore, prendendo in carico attività ripetitive e di supporto, lasciando al mantenitore umano la supervisione, la revisione e la validazione finale.

Implicazioni per il futuro dello sviluppo del kernel

L’intervento di Torvalds segna un punto di svolta nella percezione dell’IA all’interno della community Linux, tradizionalmente molto cauta riguardo a strumenti automatizzati. Alcune possibili conseguenze includono:

    • Accelerazione dei cicli di sviluppo: gli LLM possono produrre rapidamente prototipi di patch, riducendo il tempo necessario per passare dall’identificazione del problema alla proposta di soluzione.
    • Standardizzazione dei test: la generazione automatica di benchmark e suite di test può migliorare la copertura e la ripetibilità delle verifiche.
    • Collaborazione uomo‑macchina: gli sviluppatori esperti continueranno a guidare la direzione architetturale, mentre l’IA fornirà assistenza operativa.
    • Nuove sfide di revisione: il codice prodotto da un LLM dovrà essere sottoposto a revisione rigorosa per evitare regressioni o vulnerabilità non rilevate.

Il caso di Torvalds suggerisce che, se ben integrata, l’IA possa diventare un “co‑pilota” per i progetti di sistemi complessi, senza sostituire la competenza umana.

Conclusioni

Il recente esperimento di Linus Torvalds dimostra che l’IA, una volta considerata per lo più “marketing”, può effettivamente contribuire a migliorare le prestazioni di componenti critici del kernel Linux. Le otto patch generate con Claude Code hanno triplicato il throughput in un test di lettura multithread, evidenziando il potenziale di RCU e della gestione differita dei folio.

Resta comunque fondamentale ricordare che il risultato è limitato a uno scenario specifico e che le patch sono ancora in fase sperimentale. Tuttavia, la trasparenza di Torvalds nell’annunciare il ruolo dell’IA apre la porta a una nuova era di sviluppo collaborativo, dove l’intelligenza artificiale affianca gli esperti per risolvere problemi di lunga data.

Il futuro del kernel Linux potrebbe quindi vedere un crescente utilizzo di assistenti basati su LLM, non per sostituire gli sviluppatori, ma per potenziare la loro capacità di innovare e ottimizzare, trasformando la percezione dell’IA da “90 % marketing” a strumento indispensabile per l’ingegneria del software di sistema.