Re: [PATCH v4] x86/microcode/intel: Blacklist the specific BDW-EP for late loading

From: Borislav Petkov
Date: Fri Dec 29 2017 - 09:40:57 EST


On Fri, Dec 29, 2017 at 10:12:34PM +0800, Jia Zhang wrote:
> Thanks for clarifying the terms. What I meant was the microcode update
> has to be launched in BIOS rather than late loading in linux runtime.

Microcode update on those machines can happen in two ways:

* loaded by the BIOS

OR

* loaded early by the kernel from the initrd.

[ There's also the builtin microcode option which happens early too
but I'm mentioning it here only for completeness sake - don't get
confused by it. ]

> But I'm not quite sure whether or not the early-initrd-based loading is
> affected.

Apparently it isn't.

> I used a shared BDW-EP machine with a rev of microcode less than
> 0x0b000021 and observed the late loading is prohibited. I attempted
> to remove the is_blacklisted() and observed a system hang with the
> late loading. Eventually I followed up the erratum and updated the
> microcode through BIOS update.

Yap, you confirmed the erratum. Which is a good data point. :-)

> It is impossible to downgrade the BIOS to recover the old rev of
> microcode for me to have a test with early-initrd-based loading.

Some BIOSes allow that. Depends on the platform.

> Anyway, is_blacklisted() initially was introduced by Borislav to
> prohibit late loading only, so the early-initrd-based loading seems to
> be OK.

Yes, Borislav, that is me. :-)

And yes, the blacklisting is for late loading only. This has a greater
importance for old kernels where the initrd method is not supported yet
and we wanted to prevent machine hangs from microcode update. Thus this
solution which got backported.

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--