Durante il fine settimana, gli sviluppatori di Debian hanno scoperto qualcosa di strano nelle ultime due generazioni di processori Intel, Skylake e Kaby Lake. In condizioni molto specifiche, un bug nella funzione Hyper-Threading potrebbe portare a un comportamento imprevedibile del sistema, che include corruzione e perdita di dati. Prima che la palla di neve diventi più grande, ci sono buone notizie: l'errore può essere corretto con regolazioni sul microcodice, che si traduce in un aggiornamento di BIOS/UEFI per le schede madri.

Un bug nella funzione Hyper-Threading colpisce i chip Skylake e Kaby Lake
Skylake

La scoperta del bug

Gli errori hardware sono tanto inevitabili quanto quelli software, anche se il loro impatto può essere molto più grave e costoso per l'utente. Purtroppo, le ultime generazioni di processori non sembrano essere immuni. Senza andare lontano, i chip Ryzen si bloccavano in alcuni carichi di lavoro con codice FMA3, e AMD ha lavorato contro il tempo insieme ai produttori di schede madri per pubblicare la patch necessaria. Ora è il turno di Intel, o più specificamente, i processori Skylake e Kaby Lake della compagnia utilizzati con la funzione Hyper-Threading attivata (sempre che sia disponibile). L'errore è stato segnalato da sviluppatori di Debian durante il fine settimana, ma secondo il testo, il bug è stato indagato da gennaio, e la sua rilevazione iniziale risale a metà 2016.

Un bug nella funzione Hyper-Threading colpisce i chip Skylake e Kaby Lake
Il bug si manifesta in situazioni molto specifiche

Il bug secondo Intel

La documentazione pubblica di Intel presenta il bug come «Brevi cicli che utilizzano i registri AH/BH/CH/DH potrebbero causare un comportamento imprevedibile del sistema». Nella descrizione leggiamo che in condizioni complesse, i cicli brevi con meno di 64 istruzioni che utilizzano i registri AH, BH, CH o DH, così come i registri ampi corrispondenti (come RAX, EAX, o AX per AH), possono causare effetti imprevedibili sul computer, ma solo quando i due processori logici in un singolo processore fisico sono attivi (cioè, Hyper-Threading).

La soluzione

Intel ha già pubblicato diverse correzioni nel microcodice, ed è questione di tempo prima che arrivino a tutti gli utenti, sia come patch a livello di sistema operativo, sia come un aggiornamento nel BIOS/UEFI della scheda madre. Nel peggiore dei casi, se un utente è affetto dal bug, ha sempre l'opzione di disattivare Hyper-Threading temporaneamente, ma il numero di incidenti è stato così basso che personalmente non credo valga la pena arrivare a questo estremo.

Fonte: