在4~5月期間,Intel開(kāi)始更新處理器的勘誤文件,現(xiàn)在我們終于知道其中內(nèi)情,Skylake和Kaby Lake處理器的微代碼(microcode)存在BUG。所謂微代碼是處理器的一種更新特性,通過(guò)從Intel的站點(diǎn)下載微代碼,加載到處理器核中,對(duì)一些BUG進(jìn)行勘誤。微代碼是包含處理器的微指令(Microinstructions)的數(shù)據(jù)塊。
原來(lái),上周末,著名Linux發(fā)行版Debian發(fā)布警示文章,稱該BUG涉及Intel Skylake/Kaby Lake處理器(包括桌面、HEDT、嵌入式移動(dòng)平臺(tái))以及Xeon V5/V6甚至還有奔騰。
癥狀是,同步多線程開(kāi)啟下會(huì)造成一些高危的系統(tǒng)行為。包括應(yīng)用異常、數(shù)據(jù)丟失、數(shù)據(jù)處理超負(fù)荷等。
Intel官方的描述是,某些復(fù)雜條件下,處理小于64指令(如AH、BH、CH、DH寄存器)的短循環(huán),會(huì)造成系統(tǒng)失控。但是,該情況出現(xiàn)僅限同步多線程啟用時(shí)才有,也就是發(fā)生在一個(gè)物理線程承載兩個(gè)邏輯線程時(shí)。
發(fā)現(xiàn)者M(jìn)ark Shinwell是在Deibian上使用OCamlL編譯器時(shí)發(fā)現(xiàn)的。
修復(fù)方式:
Kaby Lake—向主板或OEM廠商索要最新的BIOS/UEFI更新;同時(shí)關(guān)閉同步多線程
Skylake——shell命令“grep -E 'model|stepping' /proc/cpuinfo | sort -u”,如果輸出結(jié)果有78/94,且步進(jìn)為3,請(qǐng)更新7月17日的新系統(tǒng),該內(nèi)核(20170511)打包了最新microcode;如果輸出結(jié)果非上述所顯,請(qǐng)關(guān)閉同步多線程,知道BIOS/UEFI更新。
[via SoftPedia]