Broken hyper-threading in Intel Skylake/Kaby Lake processors.

The microcode of the 6th and 7th generation Intel Core processors has a defect. If hyper-threading is enabled, this defect can lead to unpredictable system behavior.

To check if your CPU is affected you can look up your CPU model in the Skylake 6xxx or Kaby Lake 7xxx list. Only CPU's that have hyper-threading are affected. I.E. if the "# of Cores" count doe's not equal the "# of Threads" count in the description.

The best way to fix this defect is to replace the microcode by updating the system BIOS/UEFI. If there is no BIOS/UEFI update available, you should disable hyper-threading.

Linux only: If no BIOS/UEFI update is available, it might be possible to load an updated microcode via the kernel.

Known new microcode versions:

  • Skylake with CPU signature 0x406e3 or 0x506e3 microcode >= 0xb9/0xba
  • Skylake with CPU signature 0x50654 no information
  • Kaby Lake with CPU signature 0x806e9 or 0x906e9 microcode > 0x48

 

Affected default hardware:

Under linux you can use the following command to get the cpu signature (sig) and microcode version (revision):

# dmesg | grep microcode
microcode: sig=0x206a7, pf=0x10, revision=0x1a

source: debian mailinglist