Patch Series

Subject TDX: Dynamic PAMT + S-EPT Hugepage
Author seanjc@google.com
Date 2026-01-29 01:14:33 +0000 UTC
Version
Cc ackerleytng@google.com binbin.wu@linux.intel.com bp@alien8.de dave.hansen@linux.intel.com isaku.yamahata@intel.com kai.huang@intel.com kas@kernel.org kvm@vger.kernel.org linux-coco@lists.linux.dev linux-kernel@vger.kernel.org mingo@redhat.com pbonzini@redhat.com rick.p.edgecombe@intel.com sagis@google.com seanjc@google.com tglx@kernel.org vannapurve@google.com x86@kernel.org xiaoyao.li@intel.com yan.y.zhao@intel.com

Patches (45)

Name Content [All]
[RFC PATCH v5 01/45] x86/tdx: Use pg_level in TDX APIs, not the TDX-Module's 0-based level [Body]
[RFC PATCH v5 02/45] KVM: x86/mmu: Update iter->old_spte if cmpxchg64 on mirror SPTE "fails" [Body]
[RFC PATCH v5 03/45] KVM: TDX: Account all non-transient page allocations for per-TD structures [Body]
[RFC PATCH v5 04/45] KVM: x86: Make "external SPTE" ops that can fail RET0 static calls [Body]
[RFC PATCH v5 05/45] KVM: TDX: Drop kvm_x86_ops.link_external_spt(), use .set_external_spte() for all [Body]
[RFC PATCH v5 06/45] KVM: x86/mmu: Fold set_external_spte_present() into its sole caller [Body]
[RFC PATCH v5 07/45] KVM: x86/mmu: Plumb the SPTE _pointer_ into the TDP MMU's handle_changed_spte() [Body]
[RFC PATCH v5 08/45] KVM: x86/mmu: Propagate mirror SPTE removal to S-EPT in handle_changed_spte() [Body]
[RFC PATCH v5 09/45] KVM: x86: Rework .free_external_spt() into .reclaim_external_sp() [Body]
[RFC PATCH v5 10/45] x86/tdx: Move all TDX error defines into <asm/shared/tdx_errno.h> [Body]
[RFC PATCH v5 11/45] x86/tdx: Add helpers to check return status codes [Body]
[RFC PATCH v5 12/45] x86/virt/tdx: Simplify tdmr_get_pamt_sz() [Body]
[RFC PATCH v5 13/45] x86/virt/tdx: Allocate page bitmap for Dynamic PAMT [Body]
[RFC PATCH v5 14/45] x86/virt/tdx: Allocate reference counters for PAMT memory [Body]
[RFC PATCH v5 15/45] x86/virt/tdx: Improve PAMT refcounts allocation for sparse memory [Body]
[RFC PATCH v5 16/45] x86/virt/tdx: Add tdx_alloc/free_control_page() helpers [Body]
[RFC PATCH v5 17/45] x86/virt/tdx: Optimize tdx_alloc/free_control_page() helpers [Body]
[RFC PATCH v5 18/45] KVM: TDX: Allocate PAMT memory for TD and vCPU control structures [Body]
[RFC PATCH v5 19/45] KVM: Allow owner of kvm_mmu_memory_cache to provide a custom page allocator [Body]
[RFC PATCH v5 20/45] KVM: x86/mmu: Allocate/free S-EPT pages using tdx_{alloc,free}_control_page() [Body]
[RFC PATCH v5 21/45] x86/tdx: Add APIs to support get/put of DPAMT entries from KVM, under spinlock [Body]
[RFC PATCH v5 22/45] KVM: TDX: Get/put PAMT pages when (un)mapping private memory [Body]
[RFC PATCH v5 23/45] x86/virt/tdx: Enable Dynamic PAMT [Body]
[RFC PATCH v5 24/45] Documentation/x86: Add documentation for TDX's Dynamic PAMT [Body]
[RFC PATCH v5 25/45] *** DO NOT MERGE *** x86/virt/tdx: Don't assume guest memory is backed by struct page [Body]
[RFC PATCH v5 26/45] x86/virt/tdx: Enhance tdh_mem_page_aug() to support huge pages [Body]
[RFC PATCH v5 27/45] x86/virt/tdx: Enhance tdh_phymem_page_wbinvd_hkid() to invalidate huge pages [Body]
[RFC PATCH v5 28/45] x86/virt/tdx: Extend "reset page" quirk to support huge pages [Body]
[RFC PATCH v5 29/45] x86/virt/tdx: Get/Put DPAMT page pair if and only if mapping size is 4KB [Body]
[RFC PATCH v5 30/45] x86/virt/tdx: Add API to demote a 2MB mapping to 512 4KB mappings [Body]
[RFC PATCH v5 31/45] KVM: x86/mmu: Prevent hugepage promotion for mirror roots in fault path [Body]
[RFC PATCH v5 32/45] KVM: x86/mmu: Plumb the old_spte into kvm_x86_ops.set_external_spte() [Body]
[RFC PATCH v5 33/45] KVM: TDX: Hoist tdx_sept_remove_private_spte() above set_private_spte() [Body]
[RFC PATCH v5 34/45] KVM: TDX: Handle removal of leaf SPTEs in .set_private_spte() [Body]
[RFC PATCH v5 35/45] KVM: TDX: Add helper to handle mapping leaf SPTE into S-EPT [Body]
[RFC PATCH v5 36/45] KVM: TDX: Move S-EPT page demotion TODO to tdx_sept_set_private_spte() [Body]
[RFC PATCH v5 37/45] KVM: x86/tdp_mmu: Alloc external_spt page for mirror page table splitting [Body]
[RFC PATCH v5 38/45] KVM: x86/mmu: Add Dynamic PAMT support in TDP MMU for vCPU-induced page split [Body]
[RFC PATCH v5 39/45] KVM: TDX: Add core support for splitting/demoting 2MiB S-EPT to 4KiB [Body]
[RFC PATCH v5 40/45] KVM: x86: Introduce hugepage_set_guest_inhibit() [Body]
[RFC PATCH v5 41/45] KVM: TDX: Honor the guest's accept level contained in an EPT violation [Body]
[RFC PATCH v5 42/45] KVM: guest_memfd: Add helpers to get start/end gfns give gmem+slot+pgoff [Body]
[RFC PATCH v5 43/45] *** DO NOT MERGE *** KVM: guest_memfd: Add pre-zap arch hook for shared<=>private conversion [Body]
[RFC PATCH v5 44/45] KVM: x86/mmu: Add support for splitting S-EPT hugepages on conversion [Body]
[RFC PATCH v5 45/45] KVM: TDX: Turn on PG_LEVEL_2M [Body]

Session 2026-01-29

ID (for dev) cc7e677b-7aae-4e94-ae25-05ab0af40bef
Status finished
Triaged OK [Log]
Execution Log [Link]
Test Base Patched Verdict
[KASAN] Build Base e89f0e9a0a007e8c3afb8ecd739c0b3255422b00 [Config] passed [Log]
[KASAN] Boot test: Base e89f0e9a0a007e8c3afb8ecd739c0b3255422b00 [Config] passed [Log]
[KASAN] Build Patched e89f0e9a0a007e8c3afb8ecd739c0b3255422b00 [Config] [patched] passed [Log]
[KASAN] Boot test: Patched e89f0e9a0a007e8c3afb8ecd739c0b3255422b00 [Config] [patched] passed [Log]
[KASAN] Fuzzing e89f0e9a0a007e8c3afb8ecd739c0b3255422b00 [Config] e89f0e9a0a007e8c3afb8ecd739c0b3255422b00 [Config] [patched] passed [Log] [Artifacts]