Re: [PATCH v4 4/6] x86/virt/tdx: Support DPAMT when adding memory for the extensions

From: Edgecombe, Rick P

Date: Tue Oct 13 2026 - 14:59:59 EST


On Tue, 2026-10-13 at 23:28 +0800, Xu Yilun wrote:
> The TDX module uses Physical Address Metadata Table (PAMT) to track some
> state for each page of physical memory that it might use. 3 levels of
> PAMTs are used to track pages of different sizes - 1GB, 2MB and 4KB.
> The Dynamic PAMT (DPAMT) feature allows saving memory by allocating
> 4KB-level PAMT dynamically, while the 1GB and 2MB levels remain
> allocated on TDX module initialization.
>
> A previous kernel change [1] enabled the DPAMT feature by default so
> that the kernel must install DPAMT before adding any 4KB pages to the
> TDX module.
>
> Although the memory for the extensions is tens of megabytes and the
> kernel allocates it in a large chunk, the TDX module accepts it at 4K
> granularity. Thus the kernel has to install DPAMT for each page of it,
> otherwise TDH.EXT.MEM.ADD would fail to execute.
>
> The kernel has helpers to install DPAMT for a 4K page. Call
> tdx_pamt_get() for each extension page before adding it to the TDX
> module. Normally, these operations should not fail, and if they do,
> intentionally keep the error handling as simple as before - leak all
> pages, including the installed DPAMT.
>
> AI was used under supervision to review code and workshop logs.
>
> Signed-off-by: Xu Yilun <yilun.xu@xxxxxxxxxxxxxxx>
> Reviewed-by: Kiryl Shutsemau (Meta) <kas@xxxxxxxxxx>
> Link: https://lore.kernel.org/all/20260904215841.303070-1-rick.p.edgecombe@xxxxxxxxx/ # [1]

Reviewed-by: Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx>