Le cose dovrebbero finalmente cambiare con il kernel 6.0.
[ZEUS News - www.zeusnews.it - 28-09-2022]
Sin da quando ha lanciato i processori Ryzen, Threadripper ed EPIC, AMD ha raccolto consensi dovuti alla bontà dell'architettura Zen e alle prestazioni che essa consente di raggiungere, tanto da causare qualche preoccupazione in Intel.
Tuttavia, proprio le prestazioni potrebbero essere migliori, in ambiente Linux, se il kernel del sistema operativo del pinguino non fosse "artificialmente rallentato" da un'istruzione che aveva senso vent'anni fa ma che oggi ha solo un effetto negativo.
Nel 2002, epoca in cui la punta di diamante di AMD erano i processori Athlon, in Linux fu introdotto il supporto alle specifiche ACPI; per funzionare correttamente proprio con i processori AMD del tempo, però, il supporto ad ACPI costrinse gli sviluppatori a un piccolo trucco.
Venne introdotta un'istruzione che causava un'attesa sostanzialmente inutile per le funzionalità del sistema, ma con un unico scopo: rimandare l'esecuzione dell'istruzione successiva fino alla completa esecuzione del comando STPCLK# da parte del processore.
Con alcuni chipset, infatti, tale comando - che ordina di "spegnere" la CPU - non veniva eseguito correttamente; l'introduzione dell'attesa fece sì che il comando potesse essere completato, garantendo così la piena compatibilità con ACPI e la possibilità, per quei chipset, di entrare in modalità di risparmio energetico.
Quel trucco non è più necessario da tempo ma viene tutt'ora applicato da Linux anche ai più moderni processori AMD: a quanto pare, nessuno s'è mai accorto che i tempi sarebbero ormai maturi per la sua rimozione.
Nessuno, per la precisione, tranne Prateek Nayak, dipendente di AMD, il quale ha di recente inviato una patch agli sviluppatori del kernel proprio per porre fine a quel comportamento che ormai non ha più senso e, anzi, danneggia le prestazioni delle moderne CPU AMD.
I test di Nayak mostrano che, allo stato attuale, «un quantitativo significativo di tempo viene adoperato per eseguire l'istruzione fasulla, che viene incorrettamente interpretata come l'ingresso in modalità C-State».
Ciò - spiega ancora Nayak - fa sì che il processore, messo davanti a una serie di operazioni che non richiedono particolare potenza di calcolo, raggiunga uno stato di risparmio energetico ancora maggiore, operazione che però comporterà un tempo maggiore per passare allo stato di attività.
Un computer impegnato in operazioni che richiedano alla CPU di passare più volte dallo stato di attività a quello di riposo mostrerà un significativo rallentamento se la CPU in questione è AMD proprio perché le istruzioni oggi inutili introdotte nel 2002 causano uno spreco di tempo nel variare lo stato.
La patch inviata da Nayak è già stata presa in considerazione dallo sviluppatore del kernel Dave Hansen, che l'ha rivista e indicata come urgente e preparata per il merge nel ramo principale di sviluppo: sarà quindi parte del kernel 6.0, il cui rilascio dovrebbe avvenire la prossima settimana.
Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con Zeus News
ti consigliamo di iscriverti alla Newsletter gratuita.
Inoltre puoi consigliare l'articolo utilizzando uno dei pulsanti qui
sotto, inserire un commento
(anche anonimo)
o segnalare un refuso.
© RIPRODUZIONE RISERVATA |
|
|
||
|
Gladiator