The Debian mailing list has a post relevant to some Skylake and Kaby Lake users: [WARNING] Intel Skylake/Kaby Lake processors: broken hyper-threading
Users are to run
grep name /proc/cpuinfo | sort -u
to obtain their processor details and then to check http://ark.intel.com/products/codename/37572/Skylake or http://ark.intel.com/products/codename/82879/Kaby-Lake as appropriate.
If their processor is listed, they should next run
grep -q '^flags.*[[:space:]]ht[[:space:]]' /proc/cpuinfo && \ echo "Hyper-threading is supported"
According to a follow-up post, the above command which I've struck through is not reliable and users need to run
lscpu and check if
the lscpu output reports: "Thread(s) per core: 2", that means hyper-threading is enabled and supported.
If hyper-threading is supported, advice is provided for both Skylake and Kaby Lake.
I have an affected Skylake processor on 16.04 which can be fixed because
grep -E 'model|stepping' /proc/cpuinfo | sort -u
model : 78 model name : Intel(R) Core(TM) i3-6006U CPU @ 2.00GHz stepping : 3
For such processors the fix suggested is to 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.
But the 16.04 repo shows me an older version:
apt policy intel-microcode intel-microcode: Installed: (none) Candidate: 3.20151106.1 Version table: 3.20151106.1 500 500 http://archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages
Is it possible to get the recommended version and, if it is possible, how can I do so?
Edit: I found https://launchpad.net/ubuntu/xenial/+package/intel-microcode but they all seem to be older versions.
Second edit: https://launchpad.net/ubuntu/+source/intel-microcode has the relevant update but it is for Artful Aadvark.
lscpu | grep -e Model -e Step -e ^CPU\(s\) -e Thread
dpkg -i intel-microcode_3.20170707.1~ubuntu16.04.0_amd64.deb.