Re: [PATCH v2 1/4] x86/fpu: Add kernel_fpu_begin_mask() to selectively initialize state

From: Andy Lutomirski
Date: Wed Jan 20 2021 - 08:08:12 EST



> On Jan 20, 2021, at 3:53 AM, Borislav Petkov <bp@xxxxxxxxx> wrote:
>
> On Tue, Jan 19, 2021 at 09:38:59AM -0800, Andy Lutomirski wrote:
>> Currently, requesting kernel FPU access doesn't distinguish which parts of
>> the extended ("FPU") state are needed. This is nice for simplicity, but
>> there are a few cases in which it's suboptimal:
>>
>> - The vast majority of in-kernel FPU users want XMM/YMM/ZMM state but do
>> not use legacy 387 state. These users want MXCSR initialized but don't
>> care about the FPU control word. Skipping FNINIT would save time.
>> (Empirically, FNINIT is several times slower than LDMXCSR.)
>>
>> - Code that wants MMX doesn't want or need MXCSR initialized.
>> _mmx_memcpy(), for example, can run before CR4.OSFXSR gets set, and
>> initializing MXCSR will fail.
>>
>> - Any future in-kernel users of XFD (eXtended Feature Disable)-capable
>> dynamic states will need special handling.
>>
>> This patch adds a more specific API that allows callers specify exactly
>> what they want.
>
> Same nitpicks:
>
> https://lkml.kernel.org/r/20210119110834.GH27433@xxxxxxx

I would have sworn I fixed those. Sorry!

>
> --
> Regards/Gruss,
> Boris.
>
> https://people.kernel.org/tglx/notes-about-netiquette