lkml.org 
[lkml]   [2024]   [Mar]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v19 098/130] KVM: TDX: Add a place holder to handle TDX VM exit
    From
    On Mon, Feb 26, 2024, isaku.yamahata@intel.com wrote:
    > +int tdx_handle_exit(struct kvm_vcpu *vcpu, fastpath_t fastpath)
    > +{
    > + union tdx_exit_reason exit_reason = to_tdx(vcpu)->exit_reason;
    > +
    > + /* See the comment of tdh_sept_seamcall(). */
    > + if (unlikely(exit_reason.full == (TDX_OPERAND_BUSY | TDX_OPERAND_ID_SEPT)))
    > + return 1;
    > +
    > + /*
    > + * TDH.VP.ENTRY checks TD EPOCH which contend with TDH.MEM.TRACK and
    > + * vcpu TDH.VP.ENTER.
    > + */
    > + if (unlikely(exit_reason.full == (TDX_OPERAND_BUSY | TDX_OPERAND_ID_TD_EPOCH)))
    > + return 1;
    > +
    > + if (unlikely(exit_reason.full == TDX_SEAMCALL_UD)) {
    > + kvm_spurious_fault();
    > + /*
    > + * In the case of reboot or kexec, loop with TDH.VP.ENTER and
    > + * TDX_SEAMCALL_UD to avoid unnecessarily activity.
    > + */
    > + return 1;

    No. This is unnecessarily risky. KVM_BUG_ON() and exit to userspace. The
    response to "SEAMCALL faulted" should never be, "well, let's try again!".

    Also, what about #GP on SEAMCALL? In general, the error handling here seems
    lacking.

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