From: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
To: "pbonzini@redhat.com" <pbonzini@redhat.com>,
"seanjc@google.com" <seanjc@google.com>
Cc: "Li, Xiaoyao" <xiaoyao.li@intel.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"Zhao, Yan Y" <yan.y.zhao@intel.com>,
"binbin.wu@linux.intel.com" <binbin.wu@linux.intel.com>
Subject: Re: [PATCH] KVM: VMX: Formally define KVM's "0xdead" exit reason used for failed VM-Enter
Date: Wed, 23 Sep 2026 00:57:17 +0000 [thread overview]
Message-ID: <8edfb868bcabfef8e2dee96c0831cc3f1234367e.camel@intel.com> (raw)
In-Reply-To: <20260921235656.1107929-1-seanjc@google.com>
On Mon, 2026-09-21 at 16:56 -0700, 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
?? To help the backport of the DOS stuff? Seems strange: "no functional change
intended, CC stable"
Otherwise,
Reviewed-by: Rick Edgecombe <rick.p.edgecombe@intel.com>
> Signed-off-by: Sean Christopherson <seanjc@google.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;
> }
>
next prev parent reply other threads:[~2026-09-23 0:57 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
2026-09-22 2:16 ` Xiaoyao Li
2026-09-23 0:57 ` Edgecombe, Rick P [this message]
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=8edfb868bcabfef8e2dee96c0831cc3f1234367e.camel@intel.com \
--to=rick.p.edgecombe@intel.com \
--cc=binbin.wu@linux.intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.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.