Re: [patch RFC 1/5] x86/CPU: Sync CPU feature flags late

From: Andy Lutomirski
Date: Tue Jan 09 2018 - 21:57:41 EST



> On Jan 9, 2018, at 5:47 PM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
> On Wed, 10 Jan 2018, Van De Ven, Arjan wrote:
>>> In other words, if you use late microcode loading for getting IBRS, you
>>> don't get ALTERNATIVE patching and its benefits?
>>>
>>> I'll also profess some microcode ignorance here. Is "late microcode
>>> patching" *all* of the stuff we do from the OS, or do we have early and
>>> late Linux loading in addition to what the BIOS can do?
>>
>> the early boot loader level stuff is much better generally (but does not
>> work when the microcode comes out after the system booted... like really
>> long uptimes)
>
> That stuff indeed would be way simpler w/o the late support, but the fact
> that the microcode for this might reach the user way later than the kernel
> support makes it almost a must to support the late loading.

How hard would it be to add a late alternative feature? Concretely, we'd have a list of "late" cpufeatures. When we scan the alternative list, if we find a late feature, we copy it to some other list that isn't discarded, and we also copy its replacement (and relocate it eagerly, since we'll lose the offset).