From: Rick Edgecombe <rick.p.edgecombe@intel.com>
To: bp@alien8.de, dave.hansen@intel.com, hpa@zytor.com,
kas@kernel.org, kvm@vger.kernel.org, linux-coco@lists.linux.dev,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
mingo@redhat.com, nik.borisov@suse.com, pbonzini@redhat.com,
seanjc@google.com, tglx@kernel.org, vannapurve@google.com,
x86@kernel.org, chao.gao@intel.com, yan.y.zhao@intel.com,
kai.huang@intel.com, tony.lindgren@linux.intel.com,
binbin.wu@intel.com, sohil.mehta@intel.com
Cc: rick.p.edgecombe@intel.com
Subject: [PATCH v10 00/11] Dynamic PAMT
Date: Wed, 2 Sep 2026 18:51:02 -0700 [thread overview]
Message-ID: <20260903015113.93343-1-rick.p.edgecombe@intel.com> (raw)
Hi,
This is another revision of the Dynamic PAMT TDX series. The biggest
change from the last version resulted from a request from Dave to more
clearly comment and name things *DPAMT* in the DPAMT specific parts of the
code, rather than PAMT. Discretion was used, and I left some of the PAMT
names (the API names previously agreed with KVM were not updated, and the
names associated with the TDX ABI itself were left matching the spec,
etc). Comments were also strengthened around the earlier get/put patches
to clarify their temporary limitations. There were no functional changes.
To help if anyone wants to scrutinize the diff, a rebased branch of v9 is
pushed here [0].
Our CI AI system has gained some extra checks, which I thought were better
to apply. So that was done too. The changes were all trivial.
Lastly, based on offlist discussion with Dave and Kiryl, I author flipped
the arch/x86 patches to me and updated them to have a single Intel
signoff. I left the KVM patches as they were, based on my best expectation
of Sean's preference.
We have a ton of RBs at this point (8 different people, thanks!), which I
left in place due to the trivial depth of the changes. All KVM patches
have Sean's ack. The following escaped Dave's RB last time:
[PATCH 03/11] x86/virt/tdx: Add __tdx_pamt_get/put() helpers
[PATCH 04/11] x86/virt/tdx: Allocate refcounts for Dynamic PAMT memory
[PATCH 09/11] x86/virt/tdx: Enable Dynamic PAMT
[PATCH 10/11] Documentation/x86: Add documentation for TDX's Dynamic PAMT
This should be in pretty good shape, Dave please strongly consider
applying.
Background
==========
Dynamic PAMT is a TDX feature that allows saving memory by allocating some
of its page tracking metadata dynamically, instead of statically at boot.
These static allocations take roughly 0.4% of system memory. The savings
are variable depending on system and TDX usage, but could be up to 100x.
For more Dynamic PAMT background, please refer to [1]. For more analysis
of the savings in different scenarios, see the v6 coverleter[2].
It occurred to me that since the Dynamic PAMT effort began, RAM has become
much more expensive. Consequently, this feature is even more valuable now.
It would be good to enable it for TDX users.
Base
====
This is based on v7.3-rc1. A branch of this series can be found here: [3].
Testing
=======
Since there were not any changes which would be expected to have
functional impact, I just did some regression testing with our standard
automated testing for this one. I left Tested-by tags per Hongyu's
preference.
[0] https://github.com/intel-staging/tdx/tree/dpamt_v9_on_v7.3-rc1
[1] https://lore.kernel.org/lkml/20250918232224.2202592-1-rick.p.edgecombe@intel.com/
[2] https://lore.kernel.org/lkml/20260526023515.288829-1-rick.p.edgecombe@intel.com/
[3] https://github.com/intel-staging/tdx/tree/dpamt_v10
Kiryl Shutsemau (2):
KVM: TDX: Allocate PAMT memory for TD and vCPU control structures
KVM: TDX: Get/put PAMT pages when (un)mapping private memory
Rick Edgecombe (9):
x86/virt/tdx: Simplify PAMT layout calculation
x86/virt/tdx: Allocate page bitmap for Dynamic PAMT
x86/virt/tdx: Add __tdx_pamt_get/put() helpers
x86/virt/tdx: Allocate refcounts for Dynamic PAMT memory
x86/virt/tdx: Handle multiple callers in tdx_pamt_get/put()
x86/virt/tdx: Add APIs to support Dynamic PAMT ops from KVM's fault
path
x86/virt/tdx: Enable Dynamic PAMT
Documentation/x86: Add documentation for TDX's Dynamic PAMT
x86/virt/tdx: Optimize tdx_pamt_get/put()
.../admin-guide/kernel-parameters.txt | 10 +
Documentation/arch/x86/tdx.rst | 27 +
arch/x86/include/asm/kvm-x86-ops.h | 1 +
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/include/asm/tdx.h | 23 +
arch/x86/include/asm/tdx_global_metadata.h | 9 +-
arch/x86/kvm/mmu/mmu.c | 4 +
arch/x86/kvm/vmx/tdx.c | 99 ++--
arch/x86/kvm/vmx/tdx.h | 2 +
arch/x86/virt/vmx/tdx/tdx.c | 460 +++++++++++++++---
arch/x86/virt/vmx/tdx/tdx.h | 2 +
arch/x86/virt/vmx/tdx/tdx_global_metadata.c | 23 +-
12 files changed, 566 insertions(+), 95 deletions(-)
--
2.55.0
next reply other threads:[~2026-09-03 1:51 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-03 1:51 Rick Edgecombe [this message]
2026-09-03 1:51 ` [PATCH v10 01/11] x86/virt/tdx: Simplify PAMT layout calculation Rick Edgecombe
2026-09-03 1:51 ` [PATCH v10 02/11] x86/virt/tdx: Allocate page bitmap for Dynamic PAMT Rick Edgecombe
2026-09-03 1:51 ` [PATCH v10 03/11] x86/virt/tdx: Add __tdx_pamt_get/put() helpers Rick Edgecombe
2026-09-03 15:28 ` Dave Hansen
2026-09-03 1:51 ` [PATCH v10 04/11] x86/virt/tdx: Allocate refcounts for Dynamic PAMT memory Rick Edgecombe
2026-09-03 15:30 ` Dave Hansen
2026-09-03 18:33 ` Edgecombe, Rick P
2026-09-03 1:51 ` [PATCH v10 05/11] x86/virt/tdx: Handle multiple callers in tdx_pamt_get/put() Rick Edgecombe
[not found] ` <20260903020303.349961F000E9@smtp.kernel.org>
2026-09-03 23:16 ` Edgecombe, Rick P
2026-09-03 1:51 ` [PATCH v10 06/11] KVM: TDX: Allocate PAMT memory for TD and vCPU control structures Rick Edgecombe
2026-09-03 1:51 ` [PATCH v10 07/11] x86/virt/tdx: Add APIs to support Dynamic PAMT ops from KVM's fault path Rick Edgecombe
2026-09-03 1:51 ` [PATCH v10 08/11] KVM: TDX: Get/put PAMT pages when (un)mapping private memory Rick Edgecombe
2026-09-03 1:51 ` [PATCH v10 09/11] x86/virt/tdx: Enable Dynamic PAMT Rick Edgecombe
2026-09-03 15:38 ` Dave Hansen
2026-09-03 1:51 ` [PATCH v10 10/11] Documentation/x86: Add documentation for TDX's " Rick Edgecombe
2026-09-03 15:47 ` Dave Hansen
2026-09-03 19:31 ` Edgecombe, Rick P
2026-09-03 19:36 ` Dave Hansen
2026-09-03 20:39 ` Edgecombe, Rick P
2026-09-03 20:45 ` Dave Hansen
2026-09-03 1:51 ` [PATCH v10 11/11] x86/virt/tdx: Optimize tdx_pamt_get/put() Rick Edgecombe
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=20260903015113.93343-1-rick.p.edgecombe@intel.com \
--to=rick.p.edgecombe@intel.com \
--cc=binbin.wu@intel.com \
--cc=bp@alien8.de \
--cc=chao.gao@intel.com \
--cc=dave.hansen@intel.com \
--cc=hpa@zytor.com \
--cc=kai.huang@intel.com \
--cc=kas@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=nik.borisov@suse.com \
--cc=pbonzini@redhat.com \
--cc=seanjc@google.com \
--cc=sohil.mehta@intel.com \
--cc=tglx@kernel.org \
--cc=tony.lindgren@linux.intel.com \
--cc=vannapurve@google.com \
--cc=x86@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox