All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chao Gao <chao.gao@intel.com>
To: Binbin Wu <binbin.wu@linux.intel.com>
Cc: <pbonzini@redhat.com>, <seanjc@google.com>, <kvm@vger.kernel.org>,
	<rick.p.edgecombe@intel.com>, <kai.huang@intel.com>,
	<adrian.hunter@intel.com>, <reinette.chatre@intel.com>,
	<xiaoyao.li@intel.com>, <tony.lindgren@linux.intel.com>,
	<isaku.yamahata@intel.com>, <yan.y.zhao@intel.com>,
	<michael.roth@amd.com>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/7] KVM: TDX: Add a place holder for handler of TDX hypercalls (TDG.VP.VMCALL)
Date: Mon, 9 Dec 2024 19:28:45 +0800	[thread overview]
Message-ID: <Z1bUbfl8vfVvA0zW@intel.com> (raw)
In-Reply-To: <20241201035358.2193078-3-binbin.wu@linux.intel.com>

On Sun, Dec 01, 2024 at 11:53:51AM +0800, Binbin Wu wrote:
>From: Isaku Yamahata <isaku.yamahata@intel.com>
>
>Add a place holder and related helper functions for preparation of
>TDG.VP.VMCALL handling.
>
>The TDX module specification defines TDG.VP.VMCALL API (TDVMCALL for short)
>for the guest TD to call hypercall to VMM.  When the guest TD issues a
>TDVMCALL, the guest TD exits to VMM with a new exit reason.  The arguments
>from the guest TD and returned values from the VMM are passed in the guest
>registers.  The guest RCX register indicates which registers are used.
>Define helper functions to access those registers.
>
>A new VMX exit reason TDCALL is added to indicate the exit is due to TDVMCALL
>from the guest TD.  Define the TDCALL exit reason and add a place holder to
>handle such exit.
>
>Co-developed-by: Xiaoyao Li <xiaoyao.li@intel.com>
>Signed-off-by: Xiaoyao Li <xiaoyao.li@intel.com>
>Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
>Signed-off-by: Isaku Yamahata <isaku.yamahata@intel.com>
>Co-developed-by: Binbin Wu <binbin.wu@linux.intel.com>
>Signed-off-by: Binbin Wu <binbin.wu@linux.intel.com>

Reviewed-by: Chao Gao <chao.gao@intel.com>

>---
>Hypercalls exit to userspace breakout:
>- Update changelog.
>- Drop the unused tdx->tdvmcall. (Chao)
>- Use TDVMCALL_STATUS prefix for TDX call status codes (Binbin)
>---
> arch/x86/include/uapi/asm/vmx.h |  4 ++-
> arch/x86/kvm/vmx/tdx.c          | 48 +++++++++++++++++++++++++++++++++
> 2 files changed, 51 insertions(+), 1 deletion(-)
>
>diff --git a/arch/x86/include/uapi/asm/vmx.h b/arch/x86/include/uapi/asm/vmx.h
>index a5faf6d88f1b..6a9f268a2d2c 100644
>--- a/arch/x86/include/uapi/asm/vmx.h
>+++ b/arch/x86/include/uapi/asm/vmx.h
>@@ -92,6 +92,7 @@
> #define EXIT_REASON_TPAUSE              68
> #define EXIT_REASON_BUS_LOCK            74
> #define EXIT_REASON_NOTIFY              75
>+#define EXIT_REASON_TDCALL              77
> 
> #define VMX_EXIT_REASONS \
> 	{ EXIT_REASON_EXCEPTION_NMI,         "EXCEPTION_NMI" }, \
>@@ -155,7 +156,8 @@
> 	{ EXIT_REASON_UMWAIT,                "UMWAIT" }, \
> 	{ EXIT_REASON_TPAUSE,                "TPAUSE" }, \
> 	{ EXIT_REASON_BUS_LOCK,              "BUS_LOCK" }, \
>-	{ EXIT_REASON_NOTIFY,                "NOTIFY" }
>+	{ EXIT_REASON_NOTIFY,                "NOTIFY" }, \
>+	{ EXIT_REASON_TDCALL,                "TDCALL" }

Side topic:
Strictly speaking, TDCALL vm-exit handling can happen for normal VMs. so, KVM may
need to handle it by injecting #UD. Of course, it is not necessary for this series.

  reply	other threads:[~2024-12-09 11:29 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-01  3:53 [PATCH 0/7] KVM: TDX: TDX hypercalls may exit to userspace Binbin Wu
2024-12-01  3:53 ` [PATCH 1/7] KVM: TDX: Add a place holder to handle TDX VM exit Binbin Wu
2024-12-09 11:21   ` Chao Gao
2024-12-10  2:14     ` Binbin Wu
2024-12-13  8:57   ` Xiaoyao Li
2024-12-16  0:54     ` Binbin Wu
2024-12-16  4:37       ` Xiaoyao Li
2024-12-18  1:33         ` Binbin Wu
2025-01-22 12:50   ` Paolo Bonzini
2024-12-01  3:53 ` [PATCH 2/7] KVM: TDX: Add a place holder for handler of TDX hypercalls (TDG.VP.VMCALL) Binbin Wu
2024-12-09 11:28   ` Chao Gao [this message]
2024-12-10  2:34     ` Binbin Wu
2024-12-01  3:53 ` [PATCH 3/7] KVM: TDX: Handle KVM hypercall with TDG.VP.VMCALL Binbin Wu
2024-12-09  2:58   ` Chao Gao
2024-12-09  3:08     ` Binbin Wu
2024-12-01  3:53 ` [PATCH 4/7] KVM: TDX: Handle TDG.VP.VMCALL<MapGPA> Binbin Wu
2024-12-09 12:45   ` Chao Gao
2024-12-10  2:51     ` Binbin Wu
2024-12-10  9:10       ` Chao Gao
2024-12-10  9:27         ` Tony Lindgren
2024-12-13  9:32   ` Xiaoyao Li
2024-12-16  1:08     ` Binbin Wu
2024-12-16  6:03       ` Xiaoyao Li
2024-12-18  1:38         ` Binbin Wu
2024-12-18  5:09           ` Binbin Wu
2024-12-01  3:53 ` [PATCH 5/7] KVM: TDX: Handle TDG.VP.VMCALL<ReportFatalError> Binbin Wu
2024-12-06  9:31   ` Xu Yilun
2024-12-06  9:37     ` Binbin Wu
2024-12-10  9:05   ` Chao Gao
2024-12-10  9:43     ` Binbin Wu
2024-12-13  9:40   ` Xiaoyao Li
2024-12-16  1:14     ` Binbin Wu
2024-12-01  3:53 ` [PATCH 6/7] KVM: TDX: Handle TDX PV port I/O hypercall Binbin Wu
2024-12-10  9:42   ` Chao Gao
2024-12-10  9:50     ` Binbin Wu
2024-12-01  3:53 ` [PATCH 7/7] KVM: TDX: Handle TDX PV MMIO hypercall Binbin Wu
2024-12-10 18:24 ` [PATCH 0/7] KVM: TDX: TDX hypercalls may exit to userspace Paolo Bonzini

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=Z1bUbfl8vfVvA0zW@intel.com \
    --to=chao.gao@intel.com \
    --cc=adrian.hunter@intel.com \
    --cc=binbin.wu@linux.intel.com \
    --cc=isaku.yamahata@intel.com \
    --cc=kai.huang@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michael.roth@amd.com \
    --cc=pbonzini@redhat.com \
    --cc=reinette.chatre@intel.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=seanjc@google.com \
    --cc=tony.lindgren@linux.intel.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.