lkml.org 
[lkml]   [2024]   [Apr]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v19 100/130] KVM: TDX: handle EXIT_REASON_OTHER_SMI
    From


    On 2/26/2024 4:26 PM, isaku.yamahata@intel.com wrote:
    > From: Isaku Yamahata <isaku.yamahata@intel.com>
    >
    > If the control reaches EXIT_REASON_OTHER_SMI, #SMI is delivered and
    > handled right after returning from the TDX module to KVM

    need a "," here

    > nothing needs to
    > be done in KVM. Continue TDX vcpu execution.
    >
    > Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
    > Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
    > ---
    > arch/x86/include/uapi/asm/vmx.h | 1 +
    > arch/x86/kvm/vmx/tdx.c | 7 +++++++
    > 2 files changed, 8 insertions(+)
    >
    > diff --git a/arch/x86/include/uapi/asm/vmx.h b/arch/x86/include/uapi/asm/vmx.h
    > index a5faf6d88f1b..b3a30ef3efdd 100644
    > --- a/arch/x86/include/uapi/asm/vmx.h
    > +++ b/arch/x86/include/uapi/asm/vmx.h
    > @@ -34,6 +34,7 @@
    > #define EXIT_REASON_TRIPLE_FAULT 2
    > #define EXIT_REASON_INIT_SIGNAL 3
    > #define EXIT_REASON_SIPI_SIGNAL 4
    > +#define EXIT_REASON_OTHER_SMI 6
    What does "OTHER" mean in this macro?

    >
    > #define EXIT_REASON_INTERRUPT_WINDOW 7
    > #define EXIT_REASON_NMI_WINDOW 8
    > diff --git a/arch/x86/kvm/vmx/tdx.c b/arch/x86/kvm/vmx/tdx.c
    > index cba0fd5029be..2f68e6f2b53a 100644
    > --- a/arch/x86/kvm/vmx/tdx.c
    > +++ b/arch/x86/kvm/vmx/tdx.c
    > @@ -1345,6 +1345,13 @@ int tdx_handle_exit(struct kvm_vcpu *vcpu, fastpath_t fastpath)
    > WARN_ON_ONCE(fastpath != EXIT_FASTPATH_NONE);
    >
    > switch (exit_reason.basic) {
    > + case EXIT_REASON_OTHER_SMI:
    > + /*
    > + * If reach here, it's not a Machine Check System Management
    > + * Interrupt(MSMI).
    Since it's the first patch that mentions MSMI, maybe some description
    about it in the changelog can make it easier to understand.


    > #SMI is delivered and handled right after
    > + * SEAMRET, nothing needs to be done in KVM.
    > + */
    > + return 1;
    > default:
    > break;
    > }


    \
     
     \ /
      Last update: 2024-05-27 16:31    [W:3.646 / U:0.268 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site