Linux Confidential Computing Development
 help / color / mirror / Atom feed
From: Xu Yilun <yilun.xu@linux.intel.com>
To: x86@kernel.org, linux-coco@lists.linux.dev,
	 linux-kernel@vger.kernel.org
Cc: Kiryl Shutsemau <kas@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,
	yilun.xu@linux.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: [PATCH v4 0/6] Enable TDX module extensions
Date: Tue, 13 Oct 2026 23:28:50 +0800	[thread overview]
Message-ID: <20261013-tdx-module-ext-v4-0-de5ffac65470@linux.intel.com> (raw)

Hi,

There is no open issue remain from v3. Most of the changes are small
nits and minor tweaks to the changelog. Most patches have collected 2+
Reviewed-by tags, but patch 4 (the last patch in v3) only has 1 RB so
still need more review from TDX developers/reviewers.

== Changes ==

Tony pointed out that the DPAMT support should be merged into patch 3
which adds memory for the extensions. Yilun answered patch 3 is already
quite heavy for review, so better move the DPAMT support to patch 4.
Tony then suggested adding a note to the changelog that patch 3 can't
work with DPAMT without patch 4. We've agreed on that.

Rick pointed out that copying the sysinfo_ext.memory_pool_required_pages
to a dedicated local var is redundant, except that the long name is hard
to fit in 80 columns. Rename the field to ext.required_pages and delete
the local var.

Other changes:
  - Patch 1: Cut the redundant opening words in the 1st paragraph (Rick)
  - Patch 2: Add explanation why kernel enables add-on features solely on
	     available support in the changelog. (Rick)
  - Patch 5: Specify what TDH.EXT.INIT is doing in the changelog (Rick)

v3: https://lore.kernel.org/r/20261006-tdx-module-ext-v3-0-db52cb05b918@linux.intel.com

v2: https://lore.kernel.org/all/20260915102658.713079-1-yilun.xu@linux.intel.com/

v1: https://lore.kernel.org/all/20260821032920.256225-1-yilun.xu@linux.intel.com/

Quoting v2: https://lore.kernel.org/lkml/20260618081355.3253581-1-yilun.xu@linux.intel.com/

Quoting v1: https://lore.kernel.org/all/20260522034128.3144354-1-yilun.xu@linux.intel.com/

== Overview ==

To date, SEAMCALL execution must either complete quickly to avoid
stalling the host, or yield quickly at pre-defined interrupt
checkpoints. This is acceptable for the existing SEAMCALL leafs,
which perform simple, bounded operations.

However, some new features such as attestation and TD migration require
higher level security protocols inside the TDX module, which cannot fit
within that constraint. TDX solves this by making those operations
inherently preemptible and resumable like OS tasks. TDX provides a
separate SEAMCALL execution environment - the TDX module extensions -
for those operations.

This capability allows for higher-level SEAMCALL ABI design - like
"create a DICE-based attestation quote". Several new features, such as
DICE-based attestation, TDISP and TD migration, use SEAMCALL leafs
backed by the TDX module extensions.

The TDX module extensions need memory for their execution environment
to serve these SEAMCALL leafs, so they need extra setup steps during TDX
module initialization. The bulk of this series implements these setup
steps.

At runtime, the host invokes these SEAMCALL leafs just as normal ones -
if interrupted, simply re-invoke the leaf to resume.

For more information on TDX module extensions, please refer to [1].

[1] https://lore.kernel.org/lkml/20260618081355.3253581-1-yilun.xu@linux.intel.com/

== Branch stack ==

This is based on tip x86/tdx. You can find the full branch stack at [2].
The DICE part is in the full branch as an example for extensions. But it
does not include the other DICE feedbacks.

The full branch contains:

  This series: Patch 1~7: This series, including this cover-letter.
  Use case:    Patch 8~N: The old DICE part as an example.

[2] https://github.com/intel-staging/tdx/tree/tdx-module-ext

---
Xu Yilun (6):
      x86/virt/tdx: Move TDH.SYS.CONFIG operations into a wrapper
      x86/virt/tdx: Configure add-on features on TDX module init
      x86/virt/tdx: Add extra memory to TDX module for the extensions
      x86/virt/tdx: Support DPAMT when adding memory for the extensions
      x86/virt/tdx: Make TDX module initialize the extensions
      x86/virt/tdx: Re-initialize the extensions on runtime TDX module update

 arch/x86/include/asm/tdx.h                  |   1 +
 arch/x86/include/asm/tdx_global_metadata.h  |   4 +
 arch/x86/virt/vmx/tdx/tdx.h                 |   2 +
 arch/x86/virt/vmx/tdx/tdx.c                 | 250 ++++++++++++++++++++++++++--
 arch/x86/virt/vmx/tdx/tdx_global_metadata.c |  14 ++
 5 files changed, 257 insertions(+), 14 deletions(-)
---
base-commit: 5b8212d45d99b77c84e3ad305a295e9e65d5ef20
change-id: 20260916-tdx-module-ext-da1930f33c04

Best regards,
-- 
Xu Yilun <yilun.xu@linux.intel.com>


             reply	other threads:[~2026-10-13 15:33 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-13 15:28 Xu Yilun [this message]
2026-10-13 15:28 ` [PATCH v4 1/6] x86/virt/tdx: Move TDH.SYS.CONFIG operations into a wrapper Xu Yilun
2026-10-13 15:28 ` [PATCH v4 2/6] x86/virt/tdx: Configure add-on features on TDX module init Xu Yilun
2026-10-13 15:28 ` [PATCH v4 3/6] x86/virt/tdx: Add extra memory to TDX module for the extensions Xu Yilun
2026-10-13 18:46   ` Edgecombe, Rick P
2026-10-13 15:28 ` [PATCH v4 4/6] x86/virt/tdx: Support DPAMT when adding memory " Xu Yilun
2026-10-13 15:28 ` [PATCH v4 5/6] x86/virt/tdx: Make TDX module initialize " Xu Yilun
2026-10-13 15:28 ` [PATCH v4 6/6] x86/virt/tdx: Re-initialize the extensions on runtime TDX module update Xu Yilun

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=20261013-tdx-module-ext-v4-0-de5ffac65470@linux.intel.com \
    --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=dave.hansen@intel.com \
    --cc=dave.hansen@linux.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