Re: [PATCH v7 04/26] x86/fpu/xstate: Introduce XFEATURE_MASK_KERNEL_DYNAMIC xfeature set

From: Edgecombe, Rick P
Date: Mon Nov 27 2023 - 20:46:51 EST


On Fri, 2023-11-24 at 00:53 -0500, Yang Weijiang wrote:
> Define new XFEATURE_MASK_KERNEL_DYNAMIC set including the features
> can be
> optionally enabled by kernel components, i.e., the features are
> required by
> specific kernel components.

The above is a bit tough to parse. Does any of this seem clearer?

Define a new XFEATURE_MASK_KERNEL_DYNAMIC mask to specify the features
that can be optionally enabled by kernel components. This is similar to
XFEATURE_MASK_KERNEL_DYNAMIC in that it contains optional xfeatures
that can allows the FPU buffer to be dynamically sized. The difference
is that the KERNEL variant contains supervisor features and will be
enabled by kernel components that need them, and not directly by the
user.

> Currently it's used by KVM to configure guest
> dedicated fpstate for calculating the xfeature and fpstate storage
> size etc.
>
> The kernel dynamic xfeatures now only contain XFEATURE_CET_KERNEL,
> which is
> supported by host as they're enabled in xsaves/xrstors operating
> xfeature set
> (XCR0 | XSS), but the relevant CPU feature, i.e., supervisor shadow
> stack, is
> not enabled in host kernel so it can be omitted for normal fpstate by
> default.
>
> Remove the kernel dynamic feature from
> fpu_kernel_cfg.default_features so that
> the bits in xstate_bv and xcomp_bv are cleared and xsaves/xrstors can
> be
> optimized by HW for normal fpstate.

Thanks for breaking these into small patches.