В течение апреля и мая Intel обновила документацию на свои актуальные модели процессоров, и в ней появилось описание доселе неизвестной ошибки, которая нашлась у всех представителей семейств Skylake и Kaby Lake. Все процессоры этих поколений, ориентированные на десктопные компьютеры, на платформу HEDT, мобильные и встраиваемые применения, а также серверные процессоры Xeon v5 и v6, оказались подвержены проблеме, проявляющейся в «опасном и непредсказуемом поведении в случае включённой технологии Hyper-Threading». Такое описание этой ошибке дали разработчики операционной системы Debian, которым удалось выявить условия, когда баг проявляется на практике.
В разосланном пользователям предупреждении разработчики призывают владельцев компьютеров на базе процессоров с микроархитектурой Skylake и Kaby Lake немедленно отключить Hyper-Threading в BIOS или UEFI, поскольку в противном случае их могут подстерегать «нарушения в ожидаемом поведении приложений и операционной системы, искажение данных и даже их потеря». В сообщении об ошибке при этом подчёркивается, что проблема касается не только Debian или Linux, а может проявляться в любых операционных системах, включая и Microsoft Windows.
В документации Intel ошибка описана следующим образом: «в сложных микроархитектурных состояниях короткие циклы из менее чем 64 инструкций, использующих одновременно процессорные регистры AH, BH, CH или DH вместе с соответствующими им широкими регистрами (например, RAX, EAX или AX для AH), могут вызывать непредсказуемое поведение процессора. Такая аномалия наблюдается только если активны оба логических процессора одного физического процессора».
Хотя и кажется, что описанные условия не должны возникать слишком часто, в Debian-сообществе нашлись и реальные пострадавшие. Например, первым ещё в начале этого года проблему заметил один из авторов инструментария OCaml, столкнувшийся со странным поведением компилятора. Однако разобраться и локализовать ошибку удалось лишь к концу мая, когда её описание появилось в интеловской документации.
То, что Intel признал существование проблемы, означает, что в скором времени она должна быть устранена через обновления микрокода. Сейчас сообщения о наличии бага есть в документации на все процессоры Core шестого поколения (Skylake), Core седьмого поколения (Kaby Lake), Xeon v5, Xeon v6, а также в документации на новые процессоры Core X шестого поколения. Микрокод с коррекцией ошибки на данный момент выпущен Intel лишь для процессоров Skylake, он имеет номер версий 0xB9, 0xBA или более поздний. Кроме того, в новых процессорах Kaby Lake-X ошибка исправлена изначально в степпинге ядра B0. Для остальных пострадавших CPU исправление пока только ожидается. Конечные пользователи получат необходимую заплатку через обновления BIOS материнских плат.
Напомним, что обнаруженная ошибка – далеко не первая неприятность такого характера, поразившая микроархитектуру Skylake. В начале прошлого года в ней была выявлена ещё одна критичная для конечных пользователей проблема, из-за которой фиксировались зависания и сбои процессора под высокой нагрузкой. Тогда она также была оперативно исправлена через обновления микрокода.
Источник: 3DNews