在4~5月期间,Intel开始更新处理器的勘误文件,现在我们终于知道其中内情,Skylake和Kaby Lake处理器的微代码(microcode)存在BUG。
所谓微代码是处理器的一种更新特性,通过从Intel的站点下载微代码,加载到处理器核中,对一些BUG进行勘误。微代码是包含处理器的微指令(Microinstructions)的数据块。
原来,上周末,著名Linux发行版Debian发布警示文章,称该BUG涉及Intel Skylake/Kaby Lake处理器(包括桌面、HEDT、嵌入式移动平台)以及Xeon V5/V6甚至还有奔腾。
症状是,同步多线程开启下会造成一些高危的系统行为。包括应用异常、数据丢失、数据处理超负荷等。
Intel官方的描述是,某些复杂条件下,处理小于64指令(如AH、BH、CH、DH寄存器)的短循环,会造成系统失控。但是,该情况出现仅限同步多线程启用时才有,也就是发生在一个物理线程承载两个逻辑线程时。
发现者Mark Shinwell是在Deibian上使用OCamlL编译器时发现的。
修复方式:
Kaby Lake—向主板或OEM厂商索要最新的BIOS/UEFI更新;同时关闭同步多线程
Skylake——shell命令“grep -E 'model|stepping' /proc/cpuinfo | sort -u”,如果输出结果有78/94,且步进为3,请更新7月17日的新系统,该内核(20170511)打包了最新microcode;如果输出结果非上述所显,请关闭同步多线程,直到BIOS/UEFI更新。