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

From: Borislav Petkov
Date: Wed Jan 20 2021 - 07:36:34 EST

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: