Проект Debian уведомил о проблемах с CPU Intel Skylake и Kaby Lake
Разработчики дистрибутива Debian предупредили о выявлении проблем с работой режима Hyper-threading в процессорах Intel, поставляемых под кодовыми именами "Skylake" и "Kaby Lake", которые выражаются в непредсказуемом поведении системы (например, крах приложения или повреждение данных). Проблема проявляется в 6 и 7 поколении процессоров Intel Core для настольных, встраиваемые и мобильных систем, в серверных процессорах Xeon 5 и Xeon 6, а также в некоторых моделях, выпускаемых под именем Intel Pentium.
Проблема выявлена разработчиками инструментария OCaml, который столкнулись с крахами при работе компилятора OCaml, собранного при помощи GCC. Первые упоминания проблемы отмечаются начиная со второго квартала 2016 года. В ходе разбирательства стало ясно, что проблема проявляется только на некоторых процессорах Intel со включенным режимом Hyper-threading. Дальнейшее исследование условий возникновения крахов показало, что проблема вызвана некорректной обработкой определенной последовательности инструкций и вызвана дефектом процессоров Intel Skylake и Kaby Lake.
В частности, проблема проявляется, когда выполняются короткие циклы, включающие менее 64 машинных инструкций, использующих регистры AH, BH, CH или DH, а также их более длинные варианты (RAX, EAX и AX для AH, RBX, EBX и BX для BH и т. п.), при условии, что активны оба логических процессорах на том же физическом процессоре. Разработчики связались с компанией Intel, но не получили вразумительного ответа, при этом спустя несколько месяцев в списке изменений в очередном обновлении микрокода было замечено упоминание исправления, которое решало проблему в OCaml. После этого разработчики OCaml связались с сопровождающими пакет intel-microcode в Debian и поделились своей информацией.
Пользователям Debian c процессорами Intel Skylake (model 78 или 94 со stepping = 3) рекомендуется как можно скорее установить пакет intel-microcode с обновлением микрокода (версия 3.20170511.1), доступный в репозитории non-free для веток unstable, testing, Debian 9 "stretch" и Debian 8 (jessie-backports). Для остальных моделей Intel Skylake и CPU Kaby Lake исправление через intel-microcode пока недоступно, поэтому им рекомендуется отключить режим работы Hyper-threading в BIOS/UEFI или установить обновление прошивки BIOS/UEFI от производителя оборудования, если оно уже выпущено (Intel erratа SKW144, SKL150, SKX150, SKZ7, KBL095, KBW095). Проблема не специфична для Debian и проявляется в любых других ОС.
Для определения подвержена ли система проблеме следует выполнить "grep name /proc/cpuinfo | sort -u" и сверить модель процессора со списками кодовых номеров процессоров Skylake и Kaby-Lake, а также проверить наличие поддержки Hyper-threading (флаг "ht" в /proc/cpuinfo).