Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package intel-microcode.


The new upstream release by Intel (dated 2017-05-11) fixes nasty issues
on the recent Intel desktop/mobile/server processors, including some
very-high-end server processors.

It also sets a new baseline microcode for Linux, by the virtue of making
the LAPIC TSC-deadline mode far more reliable on machines where either
the operating system or the BIOS/UEFI wrote to the IA32_TSC_ADJUST MSR
(3BH).  This feature (which is used by Linux) was somewhat broken in
just about every processor of the Core family since (at least) Haswell,
here's a partial list of errata numbers: HSM183/BDM128/SKL142/
KBL092/BDF89/SKW137.

This update is known to fix an issue on some models of the Xeon E7v4
(and possibly also of the Xeon E5v4) that would cause such processors to
sometimes(?) hang during boot if a previous version of the intel-microcode
package is installed.  Erratum BDF90/BDX90.

This Xeon E7v4/E5v4 boot hang would be a severity grave bug, if not for
the fact that the number of users running Debian + intel-microcode on
bare-metal with these very expensive (and still somewhat rare)
processors must be really low right now... but the number of potential
victims of this issue could increase given enough time if those server's
BIOS/UEFI is not updated.  This issue is being tracked in Debian bug
#862606.

The new upstream update also likely fixes several critical errata on
Skylake, including one that I would consider terrifying (SKL150/SKW144),
if not for the fact that this specific erratum must be low-hitting for
some reason, or Skylake would have been dubbed Crashlake.

It likely fixes several other critical and severe errata that result in
unpredictable behavior, system hangs, and iGPU misbehavior at least on
Skylake.


I have attached the abridged source package debdiff between the release
in testing (3.20161104.1) and the release in unstable (3.20170511.1).
The abridged debdiff removes the noise caused by the removal of upstream
file microcode-20161104.dat, and addition of the new upstream file
microcode-20170511.dat.

There are no packaging changes: just an update of the upstream microcode
data file, and the changelogs.

Note: the new upstream "releasenote" file is _not_ shipped in the binary
packages, since it has either incorrect, or mostly useless information.


Full diffstat:
 changelog              |   13 
 debian/changelog       |   42 
 microcode-20161104.dat |61630 ------------------------------------------------
 microcode-20170511.dat |61886 +++++++++++++++++++++++++++++++++++++++++++++++++
 releasenote            |   41 
 5 files changed, 61982 insertions(+), 61630 deletions(-)

Abridged diffstat:
 changelog        |   13 +++++++++++++
 debian/changelog |   42 ++++++++++++++++++++++++++++++++++++++++++
 releasenote      |   41 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 96 insertions(+)


Thank you!


unblock intel-microcode/3.20170511.1

-- 
  Henrique Holschuh
diff -Nru intel-microcode-3.20161104.1/changelog 
intel-microcode-3.20170511.1/changelog
--- intel-microcode-3.20161104.1/changelog      2016-11-09 20:35:10.000000000 
-0200
+++ intel-microcode-3.20170511.1/changelog      2017-05-13 20:09:28.000000000 
-0300
@@ -1,3 +1,16 @@
+2017-05-11:
+  * Updated Microcodes:
+    sig 0x000306c3, pf_mask 0x32, 2017-01-27, rev 0x0022, size 22528
+    sig 0x000306d4, pf_mask 0xc0, 2017-01-27, rev 0x0025, size 17408
+    sig 0x000306f2, pf_mask 0x6f, 2017-01-30, rev 0x003a, size 32768
+    sig 0x000306f4, pf_mask 0x80, 2017-01-30, rev 0x000f, size 16384
+    sig 0x00040651, pf_mask 0x72, 2017-01-27, rev 0x0020, size 20480
+    sig 0x00040661, pf_mask 0x32, 2017-01-27, rev 0x0017, size 24576
+    sig 0x00040671, pf_mask 0x22, 2017-01-27, rev 0x0017, size 11264
+    sig 0x000406e3, pf_mask 0xc0, 2017-04-09, rev 0x00ba, size 98304
+    sig 0x000406f1, pf_mask 0xef, 2017-03-01, rev 0xb000021, size 26624
+    sig 0x000506e3, pf_mask 0x36, 2017-04-09, rev 0x00ba, size 98304
+
 2016-11-04:
   * New Microcodes:
     sig 0x00050663, pf_mask 0x10, 2016-10-12, rev 0x700000d, size 20480
diff -Nru intel-microcode-3.20161104.1/debian/changelog 
intel-microcode-3.20170511.1/debian/changelog
--- intel-microcode-3.20161104.1/debian/changelog       2016-11-09 
20:35:57.000000000 -0200
+++ intel-microcode-3.20170511.1/debian/changelog       2017-05-15 
15:12:25.000000000 -0300
@@ -1,3 +1,45 @@
+intel-microcode (3.20170511.1) unstable; urgency=medium
+
+  * New upstream microcode datafile 20170511
+    + Updated Microcodes:
+      sig 0x000306c3, pf_mask 0x32, 2017-01-27, rev 0x0022, size 22528
+      sig 0x000306d4, pf_mask 0xc0, 2017-01-27, rev 0x0025, size 17408
+      sig 0x000306f2, pf_mask 0x6f, 2017-01-30, rev 0x003a, size 32768
+      sig 0x000306f4, pf_mask 0x80, 2017-01-30, rev 0x000f, size 16384
+      sig 0x00040651, pf_mask 0x72, 2017-01-27, rev 0x0020, size 20480
+      sig 0x00040661, pf_mask 0x32, 2017-01-27, rev 0x0017, size 24576
+      sig 0x00040671, pf_mask 0x22, 2017-01-27, rev 0x0017, size 11264
+      sig 0x000406e3, pf_mask 0xc0, 2017-04-09, rev 0x00ba, size 98304
+      sig 0x000406f1, pf_mask 0xef, 2017-03-01, rev 0xb000021, size 26624
+      sig 0x000506e3, pf_mask 0x36, 2017-04-09, rev 0x00ba, size 98304
+    + This release fixes undisclosed errata on the desktop, mobile and
+      server processor models from the Haswell, Broadwell, and Skylake
+      families, including even the high-end multi-socket server Xeons
+    + Likely fix the TSC-Deadline LAPIC errata (BDF89, SKL142 and
+      similar) on several processor families
+    + Fix erratum BDF90 on Xeon E7v4, E5v4(?) (closes: #862606)
+    + Likely fix serious or critical Skylake errata: SKL138/144,
+      SKL137/145, SLK149
+    * Likely fix nightmare-level Skylake erratum SKL150.  Fortunately,
+      either this erratum is very-low-hitting, or gcc/clang/icc/msvc
+      won't usually issue the affected opcode pattern and it ends up
+      being rare.
+      SKL150 - Short loops using both the AH/BH/CH/DH registers and
+      the corresponding wide register *may* result in unpredictable
+      system behavior.  Requires both logical processors of the same
+      core (i.e. sibling hyperthreads) to be active to trigger, as
+      well as a "complex set of micro-architectural conditions"
+  * source: remove unneeded intel-ucode/ directory
+    Since release 20170511, upstream ships the microcodes both in .dat
+    format, and as Linux-style split /lib/firmware/intel-ucode files.
+    It is simpler to just use the .dat format file for now, so remove
+    the intel-ucode/ directory. Note: before removal, it was verified
+    that there were no discrepancies between the two microcode sets
+    (.dat and intel-ucode/)
+  * source: remove superseded upstream data file: 20161104
+
+ -- Henrique de Moraes Holschuh <h...@debian.org>  Mon, 15 May 2017 15:12:25 
-0300
+
 intel-microcode (3.20161104.1) unstable; urgency=medium
 
   * New upstream microcode datafile 20161104
diff -Nru intel-microcode-3.20161104.1/releasenote 
intel-microcode-3.20170511.1/releasenote
--- intel-microcode-3.20161104.1/releasenote    1969-12-31 21:00:00.000000000 
-0300
+++ intel-microcode-3.20170511.1/releasenote    2017-05-13 20:09:28.000000000 
-0300
@@ -0,0 +1,41 @@
+Intel Processor Microcode Package for Linux
+20170511 Release
+
+-- Updates --
+BDX-ML B0/M0/R0 (06-4f-01:ef) b00001f->b000021
+Skylake D0 (06-4e-03:c0) 9e->ba
+Broadwell ULT/ULX E/F-step (06-3d-04:c0) 24->25
+ULT Cx/Dx (06-45-01:72) 1f->20
+Crystalwell Cx (06-46-01:32) 16->17
+Broadwell Halo E/G-step (06-47-01:22) 16->17
+HSX EX E0 (06-3f-04:80) d->f
+Skylake R0 (06-5e-03:36) 9e->ba
+Haswell Cx/Dx (06-3c-03:32) 20->22
+HSX C0 (06-3f-02:6f) 39->3a
+
+-- Microcode update instructions --
+This package contains Intel microcode files in two formats:
+* microcode.dat
+* intel-ucode directory 
+
+microcode.dat is in a traditional text format. It is still used in some
+Linux distributions. It can be updated to the system through the old microcode
+update interface which is avaialble in the kernel with
+CONFIG_MICROCODE_OLD_INTERFACE=y.
+
+To update the microcode.dat to the system, one need:
+1. Ensure the existence of /dev/cpu/microcode
+2. Write microcode.dat to the file, e.g.
+  dd if=microcode.dat of=/dev/cpu/microcode bs=1M
+
+intel-ucode dirctory contains binary microcode files named in
+family-model-stepping pattern. The file is supported in most modern Linux
+distributions. It's generally located in the /lib/firmware directory,
+and can be updated throught the microcode reload interface.
+
+To update the intel-ucode package to the system, one need:
+1. Ensure the existence of /sys/devices/system/cpu/microcode/reload
+2. Copy intel-ucode directory to /lib/firmware, overwrite the files in
+/lib/firmware/intel-ucode/
+3. Write the reload interface to 1 to reload the microcode files, e.g.
+  echo 1 > /sys/devices/system/cpu/microcode/reload

Reply via email to