Re: [PATCH v4 07/16] x86/virt/tdx: Add tdx_alloc/free_page() helpers
From: Nikolay Borisov
Date: Wed Dec 03 2025 - 08:49:01 EST
On 3.12.25 г. 15:46 ч., Kiryl Shutsemau wrote:
On Tue, Dec 02, 2025 at 08:02:38PM +0000, Edgecombe, Rick P wrote:
On Tue, 2025-12-02 at 09:38 +0200, Nikolay Borisov wrote:
Yea, it could be simpler if it was always guaranteed to be 2 pages. But it
was
my understanding that it would not be a fixed size. Can you point to what
docs
makes you think that?
Looking at the PHYMEM.PAMT.ADD ABI spec the pages being added are always
put into pair in rdx/r8. So e.g. looking into tdh_phymem_pamt_add rcx is
set to a 2mb page, and subsequently we have the memcpy which simply sets
the rdx/r8 input argument registers, no ? Or am I misunderstanding the
code?
Hmm, you are totally right. The docs specify the size of the 4k entries, but
doesn't specify that Dynamic PAMT is supposed to provide larger sizes in the
other registers. A reasonable reading could assume 2 pages always, and the usage
of the other registers seems like an assumption.
Kirill, any history here?
There was a plan to future prove DPAMT by allowing PAMT descriptor to
grow in the future. The concrete approach was not settled last time I
checked. This code was my attempt to accommodate it. I don't know if it
fits the current plan.
Considering this, I'd opt for the simplest possible approach that works _now_. If in the future there are changes to the ABI let's introduce them incrementally when their time comes.