All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kiryl Shutsemau <kas@kernel.org>
To: Xu Yilun <yilun.xu@linux.intel.com>
Cc: x86@kernel.org, linux-coco@lists.linux.dev,
	 linux-kernel@vger.kernel.org,
	Rick Edgecombe <rick.p.edgecombe@intel.com>,
	 Dave Hansen <dave.hansen@linux.intel.com>,
	dave.hansen@intel.com, kvm@vger.kernel.org, yilun.xu@intel.com,
	 xiaoyao.li@intel.com, sohil.mehta@intel.com,
	adrian.hunter@intel.com,  kishen.maloor@intel.com,
	tony.lindgren@linux.intel.com, peter.fang@intel.com,
	 baolu.lu@linux.intel.com, zhenzhong.duan@intel.com,
	chao.gao@intel.com,  artem.bityutskiy@linux.intel.com,
	nik.borisov@suse.com
Subject: Re: [PATCH v3 1/6] x86/virt/tdx: Move TDH.SYS.CONFIG operations into a wrapper
Date: Fri, 9 Oct 2026 14:08:13 +0100	[thread overview]
Message-ID: <asjnNXbMfro4k2t8@thinkstation> (raw)
In-Reply-To: <20261006-tdx-module-ext-v3-1-db52cb05b918@linux.intel.com>

On Tue, Oct 06, 2026 at 01:41:45AM +0800, Xu Yilun wrote:
> In Linux, SEAMCALL wrappers are introduced to avoid broad SEAMCALL
> access by exposing only a selection of SEAMCALL leafs, but also to
> abstract the SEAMCALL register ABIs. The abstraction improves
> readability and reuse for SEAMCALL leafs that are called multiple times.
> 
> Some SEAMCALL leafs are not explicitly wrapped because the level of TDX
> ABI details needed to perform the call is low enough to flow well with
> the calling code.
> 
> For some of the currently unwrapped SEAMCALL leafs, the TDX architecture
> has evolved the ABI to introduce new leaf versions. The host can select
> the version to call based on what is supported by the loaded TDX module.
> When future kernel implements this version selection, more ABI details
> will leak into the surrounding caller code, which decreases the
> readability of the caller logic. To keep the ABI details contained, move
> the SEAMCALL leaf that will need version selection into a wrapper.
> 
> When defining the wrapper, the cleanest separation would be to have
> kernel data types for the SEAMCALL wrapper arguments, and have them
> marshaled into SEAMCALL leaf ABI types (often u64s) inside the wrapper.
> This works for many SEAMCALL leafs but becomes cumbersome when the
> register ABI type is a physical address which points to a buffer for an
> in-memory ABI. If the SEAMCALL wrapper only accepts kernel data types,
> it may need duplicate buffer allocation and copies to match the
> in-memory ABI. Another solution is to define a named helper structure
> that mirrors the in-memory ABI, populate it in a separate flow, then
> pass it to the SEAMCALL wrapper. struct seamldr_params is an existing
> example of this pattern.
> 
> TDH.SYS.CONFIG requires a list of TDMR information in the form of a PA
> array. The PA array is the in-memory ABI. Create a structure for the PA
> array, use it as the argument when creating the wrapper for
> TDH.SYS.CONFIG.
> 
> For readability, adjust a bit of the existing PA array size calculation:
> use the new PA array structure's element type instead of hardcoding u64.
> 
> Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com>
> Reviewed-by: Nikolay Borisov <nik.borisov@suse.com>
> Reviewed-by: Tony Lindgren <tony.lindgren@linux.intel.com>

Reviewed-by: Kiryl Shutsemau (Meta) <kas@kernel.org>

-- 
  Kiryl Shutsemau / Kirill A. Shutemov

  parent reply	other threads:[~2026-10-09 13:08 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-05 17:41 [PATCH v3 0/6] Enable TDX module extensions Xu Yilun
2026-10-05 17:41 ` [PATCH v3 1/6] x86/virt/tdx: Move TDH.SYS.CONFIG operations into a wrapper Xu Yilun
2026-10-06 23:27   ` Edgecombe, Rick P
2026-10-09 13:08   ` Kiryl Shutsemau [this message]
2026-10-05 17:41 ` [PATCH v3 2/6] x86/virt/tdx: Configure add-on features on TDX module init Xu Yilun
2026-10-06 23:56   ` Edgecombe, Rick P
2026-10-08  4:18     ` Xu Yilun
2026-10-08 16:06       ` Edgecombe, Rick P
2026-10-09 13:14   ` Kiryl Shutsemau
2026-10-05 17:41 ` [PATCH v3 3/6] x86/virt/tdx: Add extra memory to TDX module for the extensions Xu Yilun
2026-10-05 17:56   ` sashiko-bot
2026-10-10  2:36     ` Xu Yilun
2026-10-09 18:58   ` Edgecombe, Rick P
2026-10-10  3:20     ` Xu Yilun
2026-10-12 22:42       ` Edgecombe, Rick P
2026-10-05 17:41 ` [PATCH v3 4/6] x86/virt/tdx: Make TDX module initialize " Xu Yilun
2026-10-05 18:00   ` sashiko-bot
2026-10-08  4:25     ` Xu Yilun
2026-10-09 13:32   ` Kiryl Shutsemau
2026-10-09 19:03   ` Edgecombe, Rick P
2026-10-10 16:56     ` Xu Yilun
2026-10-12 16:10       ` Edgecombe, Rick P
2026-10-05 17:41 ` [PATCH v3 5/6] x86/virt/tdx: Re-initialize the extensions on runtime TDX module update Xu Yilun
2026-10-05 17:58   ` sashiko-bot
2026-10-08  4:47     ` Xu Yilun
2026-10-06  4:32   ` Tony Lindgren
2026-10-09 13:34   ` Kiryl Shutsemau
2026-10-09 19:20   ` Edgecombe, Rick P
2026-10-13 10:12     ` Xu Yilun
2026-10-05 17:41 ` [PATCH v3 6/6] x86/virt/tdx: Support DPAMT when adding memory for the extensions Xu Yilun
2026-10-05 17:57   ` sashiko-bot
2026-10-08  4:31     ` Xu Yilun
2026-10-08 18:19       ` Edgecombe, Rick P
2026-10-06  4:36   ` Tony Lindgren
2026-10-08  4:39     ` Xu Yilun
2026-10-08  5:37       ` Tony Lindgren
2026-10-09 13:28       ` Kiryl Shutsemau
2026-10-10  3:38         ` Xu Yilun
2026-10-12 10:15           ` Kiryl Shutsemau

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=asjnNXbMfro4k2t8@thinkstation \
    --to=kas@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=artem.bityutskiy@linux.intel.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=chao.gao@intel.com \
    --cc=dave.hansen@intel.com \
    --cc=dave.hansen@linux.intel.com \
    --cc=kishen.maloor@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nik.borisov@suse.com \
    --cc=peter.fang@intel.com \
    --cc=rick.p.edgecombe@intel.com \
    --cc=sohil.mehta@intel.com \
    --cc=tony.lindgren@linux.intel.com \
    --cc=x86@kernel.org \
    --cc=xiaoyao.li@intel.com \
    --cc=yilun.xu@intel.com \
    --cc=yilun.xu@linux.intel.com \
    --cc=zhenzhong.duan@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.