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. --