Page MenuHomeFreeBSD

sysutils/devcpu-data Update Intel Microcode release to 20180108
ClosedPublic

Authored by sbruno on Jan 9 2018, 8:26 PM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Apr 23, 5:22 AM
Unknown Object (File)
Tue, Apr 23, 5:20 AM
Unknown Object (File)
Tue, Apr 23, 5:15 AM
Unknown Object (File)
Tue, Apr 23, 5:14 AM
Unknown Object (File)
Tue, Apr 23, 5:14 AM
Unknown Object (File)
Tue, Apr 23, 5:13 AM
Unknown Object (File)
Tue, Apr 23, 5:13 AM
Unknown Object (File)
Tue, Apr 23, 5:13 AM

Details

Summary
Intel Processor Microcode Package for Linux
20180108 Release

-- Updates upon 20171117 release --
IVT C0          (06-3e-04:ed) 428->42a
SKL-U/Y D0      (06-4e-03:c0) ba->c2
BDW-U/Y E/F     (06-3d-04:c0) 25->28
HSW-ULT Cx/Dx   (06-45-01:72) 20->21
Crystalwell Cx  (06-46-01:32) 17->18
BDW-H E/G       (06-47-01:22) 17->1b
HSX-EX E0       (06-3f-04:80) 0f->10
SKL-H/S R0      (06-5e-03:36) ba->c2
HSW Cx/Dx       (06-3c-03:32) 22->23
HSX C0          (06-3f-02:6f) 3a->3b
BDX-DE V0/V1    (06-56-02:10) 0f->14
BDX-DE V2       (06-56-03:10) 700000d->7000011
KBL-U/Y H0      (06-8e-09:c0) 62->80
KBL Y0 / CFL D0 (06-8e-0a:c0) 70->80
KBL-H/S B0      (06-9e-09:2a) 5e->80
CFL U0          (06-9e-0a:22) 70->80
CFL B0          (06-9e-0b:02) 72->80
SKX H0          (06-55-04:b7) 2000035->200003c
GLK B0          (06-7a-01:01) 1e->22

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

sbruno edited the summary of this revision. (Show Details)
sbruno added subscribers: kbowling, scottl.
This revision is now accepted and ready to land.Jan 9 2018, 8:29 PM

Add pkg-message file to indicate "how" this should be implemented after installing
the package.

This revision now requires review to proceed.Jan 9 2018, 8:37 PM

Add a cpucontrol -e after microcode update is complete to re-evaluate
CPU flags. (suggested by bdrewery and cem)

bdrewery requested changes to this revision.Jan 9 2018, 9:13 PM
bdrewery added inline comments.
sysutils/devcpu-data/files/microcode_update.in
56–57 ↗(On Diff #37692)

Only head has cpucontrol -e support right now. This needs to check for support first.

You can grab the osreldate like this:

osreldate=$(awk '$1 == "#define" && $2 == "__FreeBSD_version" {print $3}' /usr/include/osreldate.h)
if [ $osreldate -ge 1200055 ]; then
# cpucontrol -e check here
fi
sysutils/devcpu-data/pkg-message
7 ↗(On Diff #37692)

This isn't right, a reboot is not required. It simply would validate that the rc script works.
Running service microcode_update start would be sufficient.

This revision now requires changes to proceed.Jan 9 2018, 9:13 PM
sysutils/devcpu-data/files/microcode_update.in
56 ↗(On Diff #37692)

And mentioned on IRC by others this needs to be after the loop.

Make "cpucontrol -e" rescan of CPU flags conditional on updating ALL CPUS in the
host system. (gtetlow)

Clarify pkg-message to indicate one does not need to reboot to install the microcode
update. (bdrewery)

When trying to rescan CPU flags, detect versions that don't support -e and error out

Any further objections? I still need to smoke test this a bit too.

Redirect cpucontrol error spew to /dev/null when testing -e

It is more than sufficient to check for a non-zero return code from cpucontrol
using -e.

rpokala added a subscriber: rpokala.
rpokala added inline comments.
sysutils/devcpu-data/files/microcode_update.in
65 ↗(On Diff #37699)

My reading of the code is that -- since all the CPUs must have identical features -- the re-evaluate code updates a single global variable. In that case, this doesn't need to be done for every CPU, it only needs to be done once.

sysutils/devcpu-data/pkg-message
15 ↗(On Diff #37699)

This output is changed by this proposed diff; please regenerate the sample output using the actual final script.

21 ↗(On Diff #37699)

The cpus list generated by jot does not skip logical CPUs, and all the logical CPUs have device nodes, so why are only the even numbers listed here?

This revision now requires changes to proceed.Jan 10 2018, 12:09 AM
sbruno added inline comments.
sysutils/devcpu-data/pkg-message
21 ↗(On Diff #37699)

This one confused me too. We update "cpu 0" then when checking "cpu1" its already been updated (hyperthreaded CPUS).

sysutils/devcpu-data/pkg-message
21 ↗(On Diff #37699)

I figured it was something like that, but in that case I would have expected some sort of output about the fact that the odd-numbered (HT) CPUs have already been updated. But that might be better be done as changes to cpuctl(4) or cpucontrol(8).

sbruno marked an inline comment as done.

Now that the microcode has already been updated, cleanup the review.

This revision was not accepted when it landed; it landed in state Needs Review.Jan 10 2018, 5:32 PM
This revision was automatically updated to reflect the committed changes.