Tempi di avvio biblici CPU AMD Zen 1 e 2: il kernel Linux risolve il problema

Il kernel Linux 6.11 ha causato rallentamenti significativi nell'avvio dei sistemi basati su CPU AMD Zen 1 e Zen 2. La correzione arriva con il rilascio del kernel 6.13 e sarà disponibile anche per le versioni precedenti.

Il kernel Linux 6.11, rilasciato a maggio 2023, ha introdotto un bug che portava i processori AMD basati sulle microarchitetture Zen 1 e Zen 2 ad ampliare significativamente i tempi di boot del sistema: da qualche secondo ad addirittura qualche minuto. Un ingegnere Nokia ha accertato la causa del problema e ha collaborato sia con AMD che con il team di sviluppo del kernel Linux per rilasciare una correzione.

La funzionalità introdotta in Linux 6.11, denominata load late on both threads, mirava a gestire gli aggiornamenti del microcodice per le CPU AMD che supportano la tecnologia SMT (simultaneous multi-threading). Di fatto tutti i chip AMD Zen immessi sul mercato dal 2017 in avanti.

I motivi dei ritardi nell’avvio di Linux con le CPU AMD Zen 1 e Zen 2

Il microcodice è un software di basso livello che controlla l’esecuzione delle istruzioni all’interno di una CPU. Per garantire stabilità, sicurezza e prestazioni, i produttori come AMD rilasciano aggiornamenti del microcodice caricati dal sistema operativo durante l’avvio.

Prima del kernel 6.11, Linux verificava se l’aggiornamento del microcodice fosse necessario su uno solo dei due thread SMT o su entrambi. L’approccio utilizzato riduceva il numero di operazioni inutili, aggiornando ogni thread solo quando indispensabile. La patch load late on both threads ha rimosso questa verifica tanto che la modifica forzava l’applicazione del microcodice su entrambi i thread di ogni core, anche quando l’aggiornamento su uno dei due era già sufficiente.

L’intervento ha quindi portato a un aumento del lavoro richiesto al sistema durante il processo di avvio, provocando rallentamenti nelle fasi iniziali del boot.

Le CPU Zen 1 e Zen 2 si sono rivelate maggiormente vulnerabili dal momento che la loro architettura SMT non era progettata per gestire le attività ridondanti in modo efficiente.

Il kernel Linux 6.13 risolve i rallentamenti con i chip AMD più vecchi

Individuata la causa delle anomalie prestazionali, arriva la conferma che l’integrazione di un’apposita patch correttiva nel kernel Linux 6.13 permette di risolvere definitivamente il problema.

La buona notizia è che la modifica applicata sulla più recente versione del kernel sarà portata anche sulle precedenti versioni stabili del “nocciolo” di Linux. In questo modo, tutti i sistemi basati su distribuzioni che utilizzano versioni del kernel antecedenti alla 6.13 potranno comunque beneficiare della correzione.

Ti consigliamo anche

Link copiato negli appunti