Nella giornata di ieri, uno sviluppatore Linux aveva inviato una patch per la pulizia del vecchio codice a 32 bit eseguito nei moderni sistemi x86 a 64 bit, con cui venivano eliminate diverse righe di codice relative a componenti non più utilizzati, per lasciare solo l’essenziale riducendo al tempo stesso le dimensioni. In concomitanza di ciò, sono anche state introdotte nuove opzioni per la compilazione Kconfig, che accompagnano i livelli di funzionalità dell’architettura x86-64.
Linus Torvalds, tuttavia, in un recente intervento, si è mostrato decisamente non soddisfatto e contrario a tali introduzioni, nello specifico nel modo in cui le funzionalità x86-64 sono state gestite da parte degli sviluppatori che si occupano della catena degli strumenti.
Linux: Torvalds contrario alle recenti funzionalità x86-64 introdotte nel kernel
Su Linux, gli sviluppatori che si occupano della catena degli strumenti hanno creato diversi livelli per rappresentare i set comuni delle estensioni ISA x86-64 più recenti e quelle introdotte nel corso negli anni, tra cui le SSE3/SSE4.2 per quanto riguarda x86-64 v2, AVX/AVX2 per x86-64 v3 e AVX-512 per v4, insieme a quelle più vecchie aggiunte con Intel Nehalem e Haswell e AMD Bulldozer ed Excavator.
In risposta a una delle recenti patch che si occupa di elaborare i flag del compilatore CPU nei bit Kconfig x86, Torvalds scrive che:
“Tutta la denominazione “v2”, “v3”, “v4” ecc. sembra essere un folle artefatto glibc ed è stupida e deve morire.
Non ha alcuna attinenza con nulla. Per favore *non* introdurre quella scoreggia mentale nei sorgenti del kernel.
Non ho idea di chi abbia inventato la spazzatura dei “livelli di microarchitettura”, ma per quanto ne so, non è affatto ufficiale ed è un modello completamente rotto.
Esiste un modello molto reale per le funzionalità microarchitettoniche, ed è il bit CPUID. Cercare di linearizzare quei bit è tecnicamente sbagliato, poiché queste cose semplicemente non sono una sorta di progressione lineare.
E peggio ancora, è una “semplificazione” che aggiunge letteralmente complessità. Ora invece di chiedere “questa CPU supporta l’istruzione cmpxchgb16?”, la domanda diventa invece “cosa diavolo significa di nuovo ‘v3’?”
Quindi no. *NON* stiamo introducendo quell’idiozia nel kernel.”
Nello specifico, Linus solleva un punto molto importante sulla linearizzazione dei livelli di funzionalità su Linux, anche per via dell’attuale situazione Intel, che nelle sue recentissime CPU ha disabilitato le istruzioni AVX-512, aggiungendo più complessità con AVX10 con opzioni sia 256-bit che a 512-bit. Torvalds ha inoltre ribadito di essere a favore della riduzione della complessità relativa alle funzionalità sulle varie edizioni x86-64.
Per tutti i dettagli, è possibile consultare la discussione nella pagina dedicata.