A Bug in the Hyper-Threading Function Affects Skylake and Kaby Lake Chips
Skylake

During the weekend, Debian developers discovered something odd in the last two generations of Intel processors, Skylake and Kaby Lake. Under very specific conditions, a bug in the Hyper-Threading feature could lead to “unpredictable behavior” of the system, including data corruption and loss. But before the snowball gets bigger, we have good news: the error can be corrected with microcode adjustments, which translates to a BIOS/UEFI update for motherboards.

Hardware errors are as inevitable as software ones, though their impact can be much more serious and costly for the user. Unfortunately, the latest generations of processors are not immune. Not long ago, Ryzen chips would freeze on some workloads with FMA3 code, and AMD worked against the clock with motherboard makers to release the necessary patch. Now it's Intel's turn, or more specifically, the company's Skylake and Kaby Lake processors when used with the Hyper-Threading feature enabled (whenever it's available). The error was reported by Debian developers over the weekend, but according to the text, the bug has been under investigation since January, and its initial detection goes back to mid-2016.

A Bug in the Hyper-Threading Function Affects Skylake and Kaby Lake Chips
The bug manifests itself in very specific situations.

The Bug in Detail

Intel's public documentation describes the bug as “Short Loops that use AH/BH/CH/DH Registers could cause unpredictable system behavior”. In its description we read that under complex conditions, short loops with fewer than 64 instructions that use the AH, BH, CH or DH registers, as well as the corresponding wide registers (such as RAX, EAX, or AX for AH), can cause unpredictable effects on the computer, but that only happens when the two logical processors in the same physical processor are active (that is, Hyper-Threading).

How to Fix It

Intel has already published several microcode fixes, and it's only a matter of time before they reach all users, either as operating system-level patches or as a BIOS/UEFI update for the motherboard. In the worst case, if a user is affected by the bug, they always have the option to temporarily disable Hyper-Threading, but the number of incidents has been so low that personally I don't think it's worth going to that extreme.

Source: