Re: [PATCH 23/28] KVM: SVM: add GMET bit definitions

From: mlevitsk

Date: Tue Jun 02 2026 - 10:45:08 EST


On Tue, 2026-05-05 at 21:52 +0200, Paolo Bonzini wrote:
> GMET (Guest Mode Execute Trap) is an AMD virtualization feature,
> essentially the nested paging version of SMEP.  Hyper-V uses it;
> add it in preparation for making it available to hypervisors
> running under KVM.
>
> Acked-by: Borislav Petkov (AMD) <bp@xxxxxxxxx>
> Tested-by: David Riley <d.riley@xxxxxxxxxxx>
> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> ---
>  arch/x86/include/asm/cpufeatures.h | 1 +
>  arch/x86/include/asm/svm.h         | 1 +
>  2 files changed, 2 insertions(+)
>
> diff --git a/arch/x86/include/asm/cpufeatures.h b/arch/x86/include/asm/cpufeatures.h
> index de7bd88e539d..d58dbce83f45 100644
> --- a/arch/x86/include/asm/cpufeatures.h
> +++ b/arch/x86/include/asm/cpufeatures.h
> @@ -379,6 +379,7 @@
>  #define X86_FEATURE_AVIC (15*32+13) /* "avic" Virtual Interrupt Controller */
>  #define X86_FEATURE_V_VMSAVE_VMLOAD (15*32+15) /* "v_vmsave_vmload" Virtual VMSAVE VMLOAD */
>  #define X86_FEATURE_VGIF (15*32+16) /* "vgif" Virtual GIF */
> +#define X86_FEATURE_GMET (15*32+17) /* Guest Mode Execution Trap */
Hi!

Looks OK: APM states 'CPUID Fn8000_000A EDX[17]=1'

>  #define X86_FEATURE_X2AVIC (15*32+18) /* "x2avic" Virtual x2apic */
>  #define X86_FEATURE_V_SPEC_CTRL (15*32+20) /* "v_spec_ctrl" Virtual SPEC_CTRL */
>  #define X86_FEATURE_VNMI (15*32+25) /* "vnmi" Virtual NMI */
> diff --git a/arch/x86/include/asm/svm.h b/arch/x86/include/asm/svm.h
> index bcfeb5e7c0ed..aa63431ba92c 100644
> --- a/arch/x86/include/asm/svm.h
> +++ b/arch/x86/include/asm/svm.h
> @@ -243,6 +243,7 @@ struct __attribute__ ((__packed__)) vmcb_control_area {
>  #define SVM_MISC_ENABLE_NP BIT(0)
>  #define SVM_MISC_ENABLE_SEV BIT(1)
>  #define SVM_MISC_ENABLE_SEV_ES BIT(2)
> +#define SVM_MISC_ENABLE_GMET BIT(3)

Looks OK: "The GMET mode is selected for a targeted guest by setting bit 3 of VMCB offset 090h to 1
>  
>  #define SVM_MISC2_ENABLE_V_LBR BIT_ULL(0)
>  #define SVM_MISC2_ENABLE_V_VMLOAD_VMSAVE BIT_ULL(1)

Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx>

Best regards,
Maxim Levitsky