Błąd w Hyper-Threadingu grozi stabilności Inteli Skylake i Kaby Lake
27.06.2017 16:01, aktual.: 27.06.2017 16:19
Zalogowani mogą więcej
Możesz zapisać ten artykuł na później. Znajdziesz go potem na swoim koncie użytkownika
Korzystacie z komputerów z procesorami Intel Skylake i Kaby Lake?Deweloper Debiana ostrzega, że w niektórych sytuacjach mogą onezachowywać się niestabilnie, prowadząc do awarii systemu iaplikacji, a w konsekwencji uszkodzenia i utraty danych.Niebezpieczeństwo to dotyczy też użytkowników innych systemówoperacyjnych, wynika ono z błędu w mikrokodzie Intela, ujawniającymsię przy włączonym Hyper-Threadingu (wielowątkowości).
Pod koniec maja Mark Shinwell, programista pracujący nad zestawemnarzędzi języka OCaml, skontaktował się z opiekunem pakietuintel-microcode, przedstawiając mu szczegółowe informacje oproblemie z procesorami Intela, które wywołane mogą być przezkompilator tego języka. Społeczność OCamla dyskutowała o tym jużod stycznia, a pierwsze doniesienia o awariach pochodzą z 2016 roku.Dostarczono je Intelowi, ale bez odpowiedzi.
Intel nie odpowiadał, ale poprawkę przygotował. ProcesorySkylake i Kaby Lake otrzymały uaktualnienie mikrokodu. W erraciemożemy przeczytać:
krótkie pętle zawierające mniej niż 64instrukcje, które wykorzystują rejestry AH/BH/CH/DH i ichrozszerzenia (np. RAX, EAX czy AX dla AH) mogą doprowadzić donieprzewidywalnego zachowania systemu. Zachodzi to tylko wówczas,gdy oba logiczne procesory na tym samym fizycznym procesorze sąaktywne.
Sęk w tym, że rzadko kiedy takie aktualizacje mikrokodu trafiajądo użytkowników – łatka trafiła tylko do producentów sprzętu,którzy rozpowszechniać ją mieli poprzez aktualizację UEFI/BIOS-u.Jedni takie łatki (oznaczone jako Intel processor errata KBL095 lubKBW095) udostępnili, inni wciąż są w fazie testów beta, albonawet nie zaczęli prac.
Na Debianie (i innych Linuksach) mikrokod zaktualizowaćłatwo. Na komputerach z procesorami o numerze modelu 78 lub 94 isteppingu 3 (wykryć to można wydając polecenie grep -E'model|stepping' /proc/cpuinfo | sort -u), należy zainstalowaćniewolny pakiet intel-microcode w wersji co najmniej 3.20170511.1 –poleceniem sudo apt-get update intel-microcode.
A co, jeśli model lub stepping procesora Skylake czy Kaby Lakejest inny? Wówczas jedynym rozwiązaniem jest wyłączenieHyper-Threadingu w ustawieniach UEFI/BIOS-u. Tak przynajmniejtwierdzą deweloperzy Debiana.
Sam Intel z tym się nie zgadza, utrzymując, że szansanatrafienia na sytuację mogącą prowadzić do awarii jest niska –wymaga to jednoczesnego wystąpienia wielu warunków wmikroarchitekturze. Trudno jednak spodziewać się, by firmapowiedziała coś innego. Ta implementacja współbieżnejwielowątkowości ma już ponad 15 lat, zadebiutowała na XeonachFoster MP. Pierwsze problemy, jakie występowały z nią na Windowsie2000 i Windowsie XP, udało się rozwiązać aktualizacjamioprogramowania – i tak Hyper-Threading stał się stalewykorzystywaną metodą podwojenia liczby dostępnych rdzeniprocesora. Teraz, gdy Intel musi zmagać się z coraz poważniejsząkonkurencją ze strony AMD, nikt się przecież nie przyzna dopoważnego problemu z wielowątkowością na swoich najnowszychprocesorach.