Re: [RFC PATCH 1/4] KVM: SEV: Publish supported SEV-SNP policy bits

Sean Christopherson
2025-09-10T19:19:45Z

On Fri, Aug 22, 2025, Tom Lendacky wrote:
> Define the set of policy bits that KVM currently knows as not requiring
> any implementation support within KVM. Provide this value to userspace
> via the KVM_GET_DEVICE_ATTR ioctl.
>
> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
> ---
> arch/x86/include/uapi/asm/kvm.h | 1 +
> arch/x86/kvm/svm/sev.c | 11 ++++++++++-
> 2 files changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/include/uapi/asm/kvm.h b/arch/x86/include/uapi/asm/kvm.h
> index 0f15d683817d..90e9c4551fa6 100644
> --- a/arch/x86/include/uapi/asm/kvm.h
> +++ b/arch/x86/include/uapi/asm/kvm.h
> @@ -468,6 +468,7 @@ struct kvm_sync_regs {
> /* vendor-specific groups and attributes for system fd */
> #define KVM_X86_GRP_SEV 1
> # define KVM_X86_SEV_VMSA_FEATURES 0
> +# define KVM_X86_SNP_POLICY_BITS 1
>
> struct kvm_vmx_nested_state_data {
> __u8 vmcs12[KVM_STATE_NESTED_VMX_VMCS_SIZE];
> diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
> index 2fbdebf79fbb..7e6ce092628a 100644
> --- a/arch/x86/kvm/svm/sev.c
> +++ b/arch/x86/kvm/svm/sev.c
> @@ -78,6 +78,8 @@ static u64 sev_supported_vmsa_features;
> SNP_POLICY_MASK_DEBUG | \
> SNP_POLICY_MASK_SINGLE_SOCKET)
>
> +static u64 snp_supported_policy_bits;

This can be __ro_after_init. Hmm, off topic, but I bet we can give most of the
variables confifugred by sev_hardware_setup() the same treatment. And really
off topic, I have a patch somewhere to convert a bunch of KVM variables from
__read_mostly to __ro_after_init...