Scoperta una grave falla in HyperThreading su Skylake e Kaby Lake
Scoperta dagli sviluppatori del linguaggio OCaml una problematica che porta, in specifiche condizioni, ad un comportamento non coerente del sistema quando è abilitato HyperThreading su processori Skylake e Kaby Lake.
di Riccardo Robecchi pubblicata il 27 Giugno 2017, alle 09:21 nel canale ProcessoriIntelSkylakeKaby Lake
Una falla nell'implementazione della tecnologia HyperThreading sui processori Intel Skylake e Kaby Lake è stata scoperta da alcuni sviluppatori del linguaggio OCaml, che hanno riferito il fatto agli sviluppatori del progetto Debian. Intel e i partner produttori di schede madri sono al lavoro su una soluzione, ma per il momento è consigliabile disattivare la funzionalità sui processori che ne sono dotati.
Il problema, che coinvolge tutte le declinazioni dei processori Skylake e Kaby Lake incluse le linee Xeon, è descritto dall'errata SKZ7/SKW144/SKL150/SKX150/KBL095/KBW095, che recita così (come riportato sulla mailing list di Debian):
Errata: SKZ7/SKW144/SKL150/SKX150/KBL095/KBW095 - Brevi cicli che usano i registri AH/BH/CH/DH possono causare un comportamento imprevedibile del sistema.
Problema: in condizioni micro-architetturali complesse, brevi cicli di meno di 64 istruzioni che utilizzano i registri AH, BH, CH o DH così come i loro equivalenti più ampi (ad es. RAX, EAX o AX per AH) possono causare un comportamento imprevedibile del sistema. Questo può avvenire solo quando entrambi i processori logici sullo stesso processore fisico sono attivi.
Implicazione: a causa di questo erratum, il sistema potrebbe dare vita a comportamenti imprevedibili.
Partendo dal presupposto che l'informatica è (o dovrebbe essere) una scienza deterministica e che introdurre non-determinismo può portare a problemi di varia gravità, tra cui anche la perdita dei dati, al momento non esistono ancora soluzioni universali e definitive al problema. Il suggerimento è quello di disattivare del tutto la funzionalità HyperThreading, in modo da evitare in toto che si possa verificare la situazione descritta dall'errata.
Se, infatti, Intel ha rilasciato un aggiornamento del microcodice che risolve il problema per alcuni processori Skylake (nello specifico, i modelli 78 e 94 con stepping 3), non ci sono attualmente soluzioni per gli altri modelli. Per ottenere una soluzione è necessario attendere che venga rilasciato dal produttore della scheda madre un aggiornamento del BIOS/UEFI che risolva gli errata KBL095 e KBW095 nel caso dei processori Kaby Lake e SKW144, SKL150, SKX150 e SK27 per i processori Skylake. Alcuni aggiornamenti sono già in fase di rilascio, mentre altri saranno rilasciati in futuro.
È consigliabile, per chiunque possieda un processore con HyperThreading e architettura Skylake o Kaby Lake, seguire attivamente gli aggiornamenti del BIOS/UEFI della propria scheda madre e installare le patch non appena queste vengono rilasciate.
8 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoPotrebbero scrivere in concorrenza quei registri, diventa non deterministica visto che il dato cambia dal contesto e il programma fa cosa vuole...
ma si parla sempre di programmi per cui nn fa cosa vuole ma segue le sue istruzioni...in questo caso sbagliate....
No, sono 2 thread di programmi diversi che si sminchiano i registri a caso, per quel che sembra. Non è deterministico il comportamento perché l'istruzione X non segue il flusso che la precede
Se te setti 1 in un registro e questo a caso prende un numero diverso, che numero ti trovi dopo? Non lo sai, quindi non è deterministico...
Esattamente. Probabilmente questa falla non è un grosso problema nell'utilizzo comune, altrimenti sarebbe saltata fuori ben prima. Certo, può essere comunque inaccettabile in certi contesti critici.
Il vero problema è se questo comportamento anomalo possa essere sfruttato per violare la macchina.
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".