Major Hyper-Threading Flaw Destabilizes Intel Kaby Lake, Skylake CPUs

Posted onJune 26, 2017June 26, 2017

Intel has shipped Hyper-Threading CPUs for well over a decade, even subtracting the Core 2 era when the technology wasn’t used. For most of that time, Hyper-Threading has been a technology that ‘just worked.’ Initial problems under Windows 2000 and Windows XP were ironed out by service packs and software updates. And while there’s been the very occasional case in which turning off Hyper-Threading improves performance, it’s a rare enough issue that I can’t recall any instances offhand.

Now, a major Hyper-Threading flaw has been discovered that can destabilize Intel CPUs based on both Kaby Lake and Skylake — not something Intel needed on the heels of AMD’s new CPUs. The issue is reported to cause “unpredictable system behavior,” which could mean anything from corrupting data to outright system crashes. The issue was picked up by Hot Hardware, via Debian.org. While Debian is a Linux distro, the warning makes it clear that the problem can happen to any operating system and is not limited to Linux.

The Debian warning page gives extensive information on how to identify which CPU you’re using and how to apply a fix (at least, where fixes are available). As of this writing, there are two ways to fix the problem. The first, and most obvious, is to disable Hyper-Threading altogether.

Hyper-Threading is generally a positive for Intel chips.

The second is to wait for your motherboard vendor to push a new UEFI version. The Debian page notes: “You want your system vendor to provide a BIOS/UEFI update that fixes “Intel processor errata KBL095, KBW095 or the similar one for my Kaby Lake processor”.

Skylake users, meanwhile, need a UEFI that addresses “Intel erratum SKW144, SKL150, SKX150,SKZ7, or the similar one for my Skylake processor.”

The Problem in Detail

Here’s how Intel describes the errata in its own documentation.

Errata: SKZ7/SKW144/SKL150/SKX150/SKZ7/KBL095/KBW095 Short Loops Which Use AH/BH/CH/DH Registers May Cause Unpredictable System Behavior.

Problem: Under complex micro-architectural conditions, short loops of less than 64 instructions that use AH, BH, CH or DH registers as well as their corresponding wider register (e.g. RAX, EAX or AX for AH) may cause unpredictable system behavior. This can only happen when both logical processors on the same physical processor are active.

Implication: Due to this erratum, the system may experience unpredictable system behavior.

Intel has apparently issued microcode updates for Skylake and Kaby Lake processors to address this problem, but they’ll need to be integrated into motherboard UEFI to work effectively. We recommend checking for board updates to see if there’s an update available if you’re using a Skylake or Kaby Lake chip.

For the record, while ExtremeTech believes Intel that these errata exist, we are not aware of any software programs affected by them and have not observed any issues with our Skylake or Kaby Lake testbeds. Our Core i7-7700K and Core i7-6700K both performed flawlessly when tested in our benchmark suites over the past six months.

If you’re having a specific problem with a piece of software that cropped up once you moved to Kaby Lake or Skylake, we recommend shutting off Hyper-Threading and seeing if that resolves the problem. Hopefully motherboard manufacturers will have solutions ready to go sooner rather than later.