Jump to content

Intel Skylake/Kaby Lake processors: broken hyper-threading


Dino8

Recommended Posts

Intel Skylake/Kaby Lake processors: broken hyper-threading

This warning advisory is relevant for users of systems with the Intel processors code-named "Skylake" and "Kaby Lake".  
These are: the 6th and 7th generation Intel Core processors (desktop, embedded, mobile and HEDT), their related 
server processors (such as Xeon v5 and Xeon v6), as well as select Intel Pentium processor models.

TL;DR: unfixed Skylake and Kaby Lake processors could, in some situations, dangerously misbehave when hyper-threading 
is enabled. Disable hyper-threading immediately in BIOS/UEFI to work around the problem.  
Read this advisory for instructions about an Intel-provided fix.


SO, WHAT IS THIS ALL ABOUT?
---------------------------
This advisory is about a processor/microcode defect recently identified on Intel Skylake and Intel Kaby Lake processors 
with hyper-threading enabled.  This defect can, when triggered, cause unpredictable system behavior: 
it could cause spurious errors, such as application and system misbehavior, data corruption, and data loss.

It was brought to the attention of the Debian project that this defect is known to directly affect some Debian 
stable users (refer to the end of this advisory for details), thus this advisory.

Please note that the defect can potentially affect any operating system(it is not restricted to Debian, and it is not 
restricted to Linux-based systems).  It can be either avoided (by disabling hyper-threading), or
fixed (by updating the processor microcode).

Due to the difficult detection of potentially affected software, and the unpredictable nature of the defect, 
all users of the affected Intel processors are strongly urged to take action as recommended by this advisory.


WHAT SHOULD I DO IF I DO HAVE SUCH PROCESSORS?
----------------------------------------------
Kaby Lake:

Users of systems with Intel Kaby Lake processors should immediately *disable* hyper-threading in the BIOS/UEFI 
configuration.  Please consult your computer/motherboard's manual for instructions, or maybe contact your system 
vendor's support line.

The Kaby Lake microcode updates that fix this issue are currently only available to system vendors, so you will need 
a BIOS/UEFI update to get it.  Contact your system vendor: if you are lucky, such a BIOS/UEFI
update might already be available, or undergoing beta testing.

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".

We strongly recommend that you should not re-enable hyper-threading until you install a BIOS/UEFI update with this fix.


Skylake:

Users of systems with Intel Skylake processors may have two choices:

1. If your processor model (listed in /proc/cpuinfo) is 78 or 94, and the stepping is 3, install the non-free 
   "intel-microcode" package with base version 3.20170511.1, and reboot the system.  THIS IS THE RECOMMENDED SOLUTION 
   FOR THESE SYSTEMS, AS IT FIXES OTHER PROCESSOR ISSUES AS WELL.

   Run this command in a command line shell (e.g. xterm) to know the model numbers and steppings of your processor.  
   All processors must be either model 78 or 94, and stepping 3, for the intel-microcode fix to work:

         grep -E 'model|stepping' /proc/cpuinfo | sort -u

   If you get any lines with a model number that is neither 78 or 94, or the stepping is not 3, you will have to 
   disable hyper-threading as described on choice 2, below.

   Refer to the section "INSTALLING THE MICROCODE UPDATES FROM NON-FREE" for instructions on how to install the 
   intel-microcode package.

2. For other processor models, disable hyper-threading in BIOS/UEFI configuration.  Please consult your 
   computer/motherboard's manual for instructions on how to do this.  Contact your system vendor for a BIOS/UEFI 
   update that fixes "Intel erratum SKW144, SKL150, SKX150, SKZ7, or the similar one for my Skylake processor".

 

NOTE: If you did not have the intel-microcode package installed on your Skylake system before, it is best if you 
check for (and install) any BIOS/UEFI updates *first*.  Read the wiki page mentioned below.
 

Source : https://lists.debian.org/debian-devel/2017/06/msg00308.html

Link to comment
Share on other sites


  • Replies 5
  • Views 647
  • Created
  • Last Reply

The best response I have seen to this information was written by a guy with the handle JOERAMBO.  He said,  "The conditions described are pretty much "antipattern" of programming - mixing usage of low 8 bit part of register access with full register access ( that is for example AH + EAH or RAX ). Those carry hefty performance penalties and are avoided in compiler generated and hand written asm code. So that relegates this bug to once in a blue moon category.

 

And these days Intel/AMD microcode on Windows is distributed by Windows Update, there is very high chance we all have required microcode fix already."

 

I have not been able to find (doesn't mean there aren't any) any articles specifically mentioning this problem and Windows.  They all reference back to Debian.

Link to comment
Share on other sites


4 hours ago, straycat19 said:

And these days Intel/AMD microcode on Windows is distributed by Windows Update,

And that's a new one on me unless you're using a Microsoft Surface , Always i just go to Dell and download any firmware that has updated for my PC ,only updates i ever got from Microsoft were drivers that more times and not botched my PC. Like on my Gateway AMD before they gave me botched drivers for Windows 10 witch they fixed it when  TH2  was released  but when I put Windows 8.1 back in i try too install drivers from Microsoft and  they were botched so i had to uninstall them and get them from AMD .

 

On Linux  i get  microcode updates for the processor from the driver update manger but  never have i got any from Microsoft and i would not trust them if I did. Microsoft have a bad habit of force installing broken display drivers for AMD boxes and i read a lot reports about it happening on Intel as well. Were if you try to play videos and games you will not have hardware acceleration  .

 

You try to install incompatible  drivers from a vendor they will not install . But if you use Microsoft or another 3rd party driver update manger they may install them even if it causes you to have to restore , Recover from a image ,or reformat  so you should not use any driver updates from Microsoft unless you can't find them nowhere else and still it's a 50/50 chance them may give you the wrong ones.

 

Only one i see from Windows was back in  2015 , Windows update KB3064209

https://support.microsoft.com/en-us/help/3064209/june-2015-intel-cpu-microcode-update-for-windows

 

Quote

 

Third-party information disclaimer  The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.


 

 

 

Windows 7: Recent Windows Update KB3064209 causes Windows 7 to not boot

https://www.sevenforums.com/windows-updates-activation/373250-recent-windows-update-kb3064209-causes-windows-7-not-boot.html?s=4467a22442a2baba280cdba2004fdf73

 

Link to comment
Share on other sites


11 hours ago, steven36 said:

You try to install incompatible  drivers from a vendor they will not install . But if you use Microsoft or another 3rd party driver update manger they may install them even if it causes you to have to restore

 

Learned this the hard way a number of years back when I used a third party driver manager on one of my systems at home.  One day it wouldn't boot, used system restore to rollback prior to driver installation and still wouldn't boot.  Had to restore it from the image my backup made the day before.  I am a firm believer that you only install drivers that the computer or motherboard manufacturer recommend on their site, regardless of how long ago they were posted.  Newer drivers may not work with older hardware.

 

As far as microcode updates in Windows goes, I don't know what Intel and Microsoft are doing in Windows 10 with Kaby Lake processors.  I would imagine that if a problem existed, similar to the problem that Intel had with the original Pentium 60 processors, that they would want the Microsoft to include the microcode update in one of their monthly updates.  Now that they aren't being exactly forthright in what they are patching you may never know.

 

So far I have not been able to find any microcode update patches for SkyLake processors other than those related in the Debian article, so maybe it isn't an issue in Windows.  I am getting ready to build some Windows 7 Kaby Lake systems, but again I don't  use any Microsoft updates after June 2015, so if there is an issue that was patched since then it should be fairly easy to spot.

Link to comment
Share on other sites


55 minutes ago, straycat19 said:

So far I have not been able to find any microcode update patches for SkyLake processors other than those related in the Debian article, so maybe it isn't an issue in Windows.

The guys from over on the Linux forums say that it effects windows too


 

Quote


hrkristian  1 day ago

 

Kernel doesn't matter, it's not even limited to Linux, it affects all operating systems.

 


 

Quote

 

[–]jones_supa 1 day ago

 

It does indeed affect all operating systems, but also depends on what kind of code the compiler has created. It would be interesting to know if MSVC creates code patterns that are able to trigger the flaw.

 


 

Quote

 

ntrid 1 day ago

 

Gcc runs on Windows too

 

 

 

As far Linux there are already packages available for this  from the distros dont anyone read the email?

Quote

INSTALLING THE MICROCODE UPDATES FROM NON-FREE: ----------------------------------------------- Instructions are available at: https://wiki.debian.org/Microcode Updated intel-microcode packages are already available in non-free for: unstable, testing, Debian 9 "stretch" (stable), and Debian 8 *backports* (jessie-backports). THE MICROCODE PACKAGES FROM THE RECENT STABLE RELEASE (June 17th, 2017) ALREADY HAVE THE SKYLAKE FIX, BUT YOU MAY HAVE TO INSTALL THEM. Updated intel-microcode packages in non-free for Debian 8 "jessie" (oldstable) are waiting for approval and will likely be released in the next non-free oldstable point release. They are the same as the packages in non-free jessie-backports, with a change to the version number. The wiki page above has instructions on how to enable "contrib" and "non-free", so as to be possible to install the intel-microcode package. Users of "jessie" (oldstable) might want to enable jessie-backports to get *this* intel-microcode update faster. This is also explained in the wiki page above.

https://lists.debian.org/debian-devel/2017/06/msg00308.html

On Ubuntu  it would be

"sudo apt-get install intel-microcode && reboot" and yer done.
https://wiki.debian.org/Microcode

 

Link to comment
Share on other sites


On 6/27/2017 at 9:58 AM, steven36 said:

As far Linux there are already packages available for this  from the distros dont anyone read the email?

 

Intel Microcode is only released in Linux packages but there is a way to update it in Windows also.  I am going to post that over in the tutorial section.  Intel's latest microcode is 20170511 which includes the patches for both processors.  Matter of fact, Intel releases one file that updates all their processors, so this can be applied to any intel processor and and if the microcode needs to be updated it will be.  This same procedure will also update AMD processors.

Link to comment
Share on other sites


Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...