Re: [PATCH v6 02/11] x86/virt/tdx: Allocate page bitmap for Dynamic PAMT

From: Edgecombe, Rick P

Date: Tue Jun 30 2026 - 20:14:54 EST


On Thu, 2026-06-04 at 17:14 +0100, Kiryl Shutsemau wrote:
> On Mon, May 25, 2026 at 07:35:06PM -0700, Rick Edgecombe wrote:
> > @@ -579,7 +591,12 @@ static __init int tdmr_set_up_pamt(struct tdmr_info *tdmr,
> >    * Calculate the PAMT size for each TDX supported page size
> >    * and the total PAMT size.
> >    */
> > - tdmr->pamt_4k_size = tdmr_get_pamt_sz(tdmr, TDX_PS_4K);
> > + if (tdx_supports_dynamic_pamt(&tdx_sysinfo)) {
> > + /* With Dynamic PAMT, PAMT_4K is replaced with a bitmap */
> > + tdmr->pamt_4k_size = tdmr_get_pamt_bitmap_sz(tdmr);
> > + } else {
> > + tdmr->pamt_4k_size = tdmr_get_pamt_sz(tdmr, TDX_PS_4K);
> > + }
> >    tdmr->pamt_2m_size = tdmr_get_pamt_sz(tdmr, TDX_PS_2M);
> >    tdmr->pamt_1g_size = tdmr_get_pamt_sz(tdmr, TDX_PS_1G);
> >    tdmr_pamt_size = tdmr->pamt_4k_size + tdmr->pamt_2m_size + tdmr->pamt_1g_size;
>
> Maybe it would more readable if we reverse the size order:
>
> /*
> * Calculate the PAMT size for each TDX supported page size
> * and the total PAMT size.
> */
>    tdmr->pamt_1g_size = tdmr_get_pamt_sz(tdmr, TDX_PS_1G);
>    tdmr->pamt_2m_size = tdmr_get_pamt_sz(tdmr, TDX_PS_2M);
>
> if (tdx_supports_dynamic_pamt(&tdx_sysinfo)) {
> /* With Dynamic PAMT, PAMT_4K is replaced with a bitmap */
> tdmr->pamt_4k_size = tdmr_get_pamt_bitmap_sz(tdmr);
> } else {
> tdmr->pamt_4k_size = tdmr_get_pamt_sz(tdmr, TDX_PS_4K);
> }
>
>    tdmr_pamt_size = tdmr->pamt_1g_size + tdmr->pamt_2m_size + tdmr->pamt_4k_size;
>
> It allows split it into logical blocks while keeping the comment attached.

Uhh, yea. I can see it a little. I'll swap it.