All of lore.kernel.org
 help / color / mirror / Atom feed
From: Binbin Wu <binbin.wu@linux.intel.com>
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	Xiaoyao Li <xiaoyao.li@intel.com>,
	Yan Zhao <yan.y.zhao@intel.com>,
	Rick Edgecombe <rick.p.edgecombe@intel.com>
Subject: Re: [PATCH] KVM: VMX: Formally define KVM's "0xdead" exit reason used for failed VM-Enter
Date: Tue, 22 Sep 2026 10:13:02 +0800	[thread overview]
Message-ID: <14db958c-be80-4a91-b79d-1775fc058daf@linux.intel.com> (raw)
In-Reply-To: <20260921235656.1107929-1-seanjc@google.com>

On 9/22/2026 7:56 AM, Sean Christopherson wrote:
> Add EXIT_REASON_UNDEFINED to track KVM's magic "0xdead" value that's used
> to stuff the exit reason on a failed VM-Enter so that the magic can be
> reused by TDX, and to make it more obvious that it's an arbitrary, KVM-
> defined value (though the whole "dead" thing makes it pretty darn obvious).
> 
> Opportunistically add a compile-time assert to ensure the KVM-defined exit
> reason never collides with a "real" exit reason.
> 
> No functional change intended.
> 
> Cc: Xiaoyao Li <xiaoyao.li@intel.com>
> Cc: Yan Zhao <yan.y.zhao@intel.com>
> Cc: Binbin Wu <binbin.wu@linux.intel.com>
> Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
> Cc: stable@vger.kernel.org
> Signed-off-by: Sean Christopherson <seanjc@google.com>

Reviewed-by: Binbin Wu <binbin.wu@linux.intel.com>

> ---
>  arch/x86/include/asm/vmx.h | 8 ++++++++
>  arch/x86/kvm/vmx/vmx.c     | 4 +++-
>  2 files changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h
> index 3f1b3096ff04..e49b836c7313 100644
> --- a/arch/x86/include/asm/vmx.h
> +++ b/arch/x86/include/asm/vmx.h
> @@ -20,6 +20,14 @@
>  #include <asm/trapnr.h>
>  #include <asm/vmxfeatures.h>
>  
> +/*
> + * UNDEFINED is a KVM-defined value used to indicate that the basic exit reason
> + * is undefined/invalid, e.g. on VM-Fail or if TDX never attempted VM-Enter.
> + * The value itself is arbitrary, it just needs to not collide with a real exit
> + * reason.
> + */
> +#define EXIT_REASON_UNDEFINED			0xdead
> +
>  struct vmcs_hdr {
>  	u32 revision_id:31;
>  	u32 shadow_vmcs:1;
> diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
> index 612ab07d4100..c897dbf0e954 100644
> --- a/arch/x86/kvm/vmx/vmx.c
> +++ b/arch/x86/kvm/vmx/vmx.c
> @@ -6388,6 +6388,8 @@ static int (*kvm_vmx_exit_handlers[])(struct kvm_vcpu *vcpu) = {
>  static const int kvm_vmx_max_exit_handlers =
>  	ARRAY_SIZE(kvm_vmx_exit_handlers);
>  
> +static_assert(EXIT_REASON_UNDEFINED >= ARRAY_SIZE(kvm_vmx_exit_handlers));
> +
>  void vmx_get_exit_info(struct kvm_vcpu *vcpu, u32 *reason,
>  		       u64 *info1, u64 *info2, u32 *intr_info, u32 *error_code)
>  {
> @@ -7474,7 +7476,7 @@ static noinstr void vmx_vcpu_enter_exit(struct kvm_vcpu *vcpu,
>  	vmx_enable_fb_clear(vmx);
>  
>  	if (unlikely(vmx->fail)) {
> -		vmx->vt.exit_reason.full = 0xdead;
> +		vmx->vt.exit_reason.full = EXIT_REASON_UNDEFINED;
>  		goto out;
>  	}
>  
> 
> base-commit: d4b7fb647204f0c81dfeae2d1a708e4d858e0c94


  reply	other threads:[~2026-09-22  2:13 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-21 23:56 [PATCH] KVM: VMX: Formally define KVM's "0xdead" exit reason used for failed VM-Enter Sean Christopherson
2026-09-22  2:13 ` Binbin Wu [this message]
2026-09-22  2:16 ` Xiaoyao Li
2026-09-23  0:57 ` Edgecombe, Rick P
2026-09-23 12:46   ` Sean Christopherson
2026-09-24 21:52 ` Sean Christopherson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=14db958c-be80-4a91-b79d-1775fc058daf@linux.intel.com \
    --to=binbin.wu@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=seanjc@google.com \
    --cc=xiaoyao.li@intel.com \
    --cc=yan.y.zhao@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.