Linux Confidential Computing Development
 help / color / mirror / Atom feed
From: Xu Yilun <yilun.xu@linux.intel.com>
To: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
Cc: "linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"x86@kernel.org" <x86@kernel.org>,
	"Gao, Chao" <chao.gao@intel.com>,
	"Xu, Yilun" <yilun.xu@intel.com>,
	"Duan, Zhenzhong" <zhenzhong.duan@intel.com>,
	"kas@kernel.org" <kas@kernel.org>,
	"baolu.lu@linux.intel.com" <baolu.lu@linux.intel.com>,
	"Li, Xiaoyao" <xiaoyao.li@intel.com>,
	"Maloor, Kishen" <kishen.maloor@intel.com>,
	"Hunter, Adrian" <adrian.hunter@intel.com>,
	"tony.lindgren@linux.intel.com" <tony.lindgren@linux.intel.com>,
	"Mehta, Sohil" <sohil.mehta@intel.com>,
	"Fang, Peter" <peter.fang@intel.com>,
	"nik.borisov@suse.com" <nik.borisov@suse.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"artem.bityutskiy@linux.intel.com"
	<artem.bityutskiy@linux.intel.com>
Subject: Re: [PATCH v2 1/5] x86/virt/tdx: Move TDH.SYS.CONFIG operations into a wrapper
Date: Fri, 18 Sep 2026 17:54:44 +0800	[thread overview]
Message-ID: <aq0KZNuDmTeUDn9T@yilunxu-OptiPlex-7050> (raw)
In-Reply-To: <8b5b577cdad5e81c5166349e13541989f2facf53.camel@intel.com>

On Tue, Sep 15, 2026 at 08:45:04PM +0000, Edgecombe, Rick P wrote:
> On Tue, 2026-09-15 at 18:26 +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 latter improves readability and
> > reuse for SEAMCALL leafs that are called multiple times.
> 
> I'm trying to adjust to not using former/latter. The feedback I've seen is that
> it is too much to remember as you read along. How about:
> The abstraction improves...

Yes.

> 
> > 
> > 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
>                                          ^are

the level ... is low enough, seems "is" is the right one? AI also
prefers "is".

> > the calling code.
> > 
> > For some of the currently unwrapped SEAMCALL leafs, TDX architecture
> > adjusts the ABI and adds SEAMCALL version selection for backward
> > compatibility.
> > 
> 
> Reads a little weird to me. Like I'm not sure when this adjusting is happening.
> How about:
> 
> ..., the TDX architecture has evolved the ABI to introduce new versions of
> existing SEAMCALLs. VMM code can select the version to call based on what is
> supported by the loaded TDX module.

good to me.

> 
> >  Future kernel will need to support the changes. 
> > 
> 
> ?? I guess you mean selecting between SEAMCALL versions?

Yes. I refactored the whole paragraph:

    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.

> 
> > This will
> > leak more ABI details into the surrounding caller code and decrease
> > readability of the other logic. To keep the ABI details contained, move
> > the SEAMCALL leafs that will need version selection into wrappers.
> > 
> > The cleanest separation would be to have kernel data types for the
> > SEAMCALL wrapper arguments,
> > 
> 
> This is now talking about general seamcall wrapper design. It could read like
> it's instead talking about clean separation of SEAMCALL versions?

OK, the transition is not good here.

    When defining the wrapper, the cleanest separation would be...

[...]

> Outside the diff it has:
> array_sz = tdmr_list->nr_consumed_tdmrs * sizeof(u64);
> 
> Could be now changed to:
> array_sz = tdmr_list->nr_consumed_tdmrs * sizeof(*tdmr_pa_array->phys);

Good to me. I tweaked it a bit on my preference:

	array_sz = tdmr_list->nr_consumed_tdmrs *
		sizeof(tdmr_pa_array->phys[0]);

> 
> A bit of existing cleanup, but the u64 is especially tucked away compared to
> before, so I'd argue its maintaining readability of the existing code.

  reply	other threads:[~2026-09-18  9:55 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-15 10:26 [PATCH v2 0/5] Enable TDX module extensions Xu Yilun
2026-09-15 10:26 ` [PATCH v2 1/5] x86/virt/tdx: Move TDH.SYS.CONFIG operations into a wrapper Xu Yilun
2026-09-15 20:45   ` Edgecombe, Rick P
2026-09-18  9:54     ` Xu Yilun [this message]
2026-09-22  7:09   ` Tony Lindgren
2026-09-15 10:26 ` [PATCH v2 2/5] x86/virt/tdx: Configure add-on features on TDX module init Xu Yilun
2026-09-15 20:54   ` Edgecombe, Rick P
2026-09-21 11:42     ` Xu Yilun
2026-09-22 14:48       ` Edgecombe, Rick P
2026-09-24  1:51         ` Xu Yilun
2026-09-16  3:23   ` Chao Gao
2026-09-18  9:56     ` Xu Yilun
2026-09-22  7:13   ` Tony Lindgren
2026-09-23  7:30     ` Xu Yilun
2026-09-23  7:59       ` Tony Lindgren
2026-09-24  1:33         ` Xu Yilun
2026-09-24  6:22           ` Tony Lindgren
2026-09-25 14:12   ` Nikolay Borisov
2026-09-15 10:26 ` [PATCH v2 3/5] x86/virt/tdx: Detect if the extensions initialization is required Xu Yilun
2026-09-15 21:14   ` Edgecombe, Rick P
2026-09-18  9:58     ` Xu Yilun
2026-09-28 21:06     ` Edgecombe, Rick P
2026-09-29  9:28       ` Xu Yilun
2026-09-29 16:33         ` Edgecombe, Rick P
2026-09-29 17:26   ` Nikolay Borisov
2026-09-30  3:02     ` Xu Yilun
2026-09-15 10:26 ` [PATCH v2 4/5] x86/virt/tdx: Add extra memory to TDX module for the extensions Xu Yilun
2026-09-15 21:19   ` Edgecombe, Rick P
2026-10-01 12:14     ` Kiryl Shutsemau
2026-10-01 14:55       ` Edgecombe, Rick P
2026-09-16  7:40   ` Chao Gao
2026-09-18 10:06     ` Xu Yilun
2026-09-22  7:25   ` Tony Lindgren
2026-09-15 10:26 ` [PATCH v2 5/5] x86/virt/tdx: Make TDX module initialize " Xu Yilun
2026-09-15 22:09 ` [PATCH v2 0/5] Enable TDX module extensions Edgecombe, Rick P

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=aq0KZNuDmTeUDn9T@yilunxu-OptiPlex-7050 \
    --to=yilun.xu@linux.intel.com \
    --cc=adrian.hunter@intel.com \
    --cc=artem.bityutskiy@linux.intel.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=chao.gao@intel.com \
    --cc=kas@kernel.org \
    --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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox