Linux Confidential Computing Development
 help / color / mirror / Atom feed
From: "Edgecombe, Rick P" <rick.p.edgecombe@intel.com>
To: "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	"Huang, Kai" <kai.huang@intel.com>,
	"Hansen, Dave" <dave.hansen@intel.com>,
	"Zhao, Yan Y" <yan.y.zhao@intel.com>,
	"kas@kernel.org" <kas@kernel.org>,
	"seanjc@google.com" <seanjc@google.com>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"pbonzini@redhat.com" <pbonzini@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"nik.borisov@suse.com" <nik.borisov@suse.com>,
	"linux-doc@vger.kernel.org" <linux-doc@vger.kernel.org>,
	"hpa@zytor.com" <hpa@zytor.com>,
	"Annapurve, Vishal" <vannapurve@google.com>,
	"tglx@kernel.org" <tglx@kernel.org>,
	"Mehta, Sohil" <sohil.mehta@intel.com>,
	"bp@alien8.de" <bp@alien8.de>, "Gao, Chao" <chao.gao@intel.com>,
	"x86@kernel.org" <x86@kernel.org>
Cc: "kirill.shutemov@linux.intel.com" <kirill.shutemov@linux.intel.com>
Subject: Re: [PATCH v6 03/11] x86/virt/tdx: Add tdx_alloc/free_control_page() helpers
Date: Wed, 8 Jul 2026 22:54:16 +0000	[thread overview]
Message-ID: <e268cced7f18e0d25997a9dfa1e0150f34d5bd60.camel@intel.com> (raw)
In-Reply-To: <7d39a92a-0555-41cb-91dd-96dace318dcf@intel.com>

On Tue, 2026-07-07 at 20:50 -0700, Sohil Mehta wrote:
> How about?
> 
> x86/virt/tdx: Add tdx_{alloc,free}_control_page() helpers

Sure.

> 
> On 5/25/2026 7:35 PM, Rick Edgecombe wrote:
> > From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
> > 
> > Add helpers to use when allocating or preparing pages that are handed to
> > the TDX-Module for use as control/S-EPT pages, and thus need Dynamic PAMT
> > adjustments.
> > 
> > The TDX module tracks some state for each page of physical memory that it
> > might use. It calls this state the PAMT. It includes separate state for
> > each page size a physical page could be utilized at within the TDX module
> > (1GB, 2MB, 4KB). In Dynamic PAMT, only the 4KB page size state is
> > allocated dynamically. So for pages that TDX will use as 2MB physically
> > contiguous pages, Dynamic PAMT backing is not needed.
> 
> I lost the continuation in the last sentence. Why does it only talk
> about 2MB if only 4KB is dynamically allocated. What about 1GB?
> 
> (Probably due to my lack of TDX knowledge)
> Similarly, why do these functions only refer to 2MB only and not 1GB?
> 
> pamt_2mb_arg(), tdh_phymem_pamt_add(), tdh_phymem_pamt_remove().

We only need to dynamically allocate the 4k level of the PAMT. This is the
detail we discussed in patch 2. There it was necessary to explain why we are
changing the 4K level of the PAMT to be a bitmap thing, and not the others. Here
I think it is useful to understand why the helpers are all for 4KB page size of
host memory. I think it's clearer actually with just the last line removed:

   The TDX module tracks some state for each page of physical memory that it
   might use. It calls this state the PAMT. It includes separate state for
   each page size a physical page could be utilized at within the TDX module
   (1GB, 2MB, 4KB). In Dynamic PAMT, only the 4KB page size state is
   allocated dynamically.
   
   KVM will need to hand pages to the TDX module that it will use at 4KB
   granularity. So these pages will need Dynamic PAMT backing added before
   they are used by the TDX module, and removed afterwards.

And, I'll address the trimmed style comments.




  reply	other threads:[~2026-07-08 22:54 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-05-26  2:35 [PATCH v6 00/11] Dynamic PAMT Rick Edgecombe
2026-05-26  2:35 ` [PATCH v6 01/11] x86/virt/tdx: Simplify tdmr_get_pamt_sz() Rick Edgecombe
2026-06-04 16:05   ` Kiryl Shutsemau
2026-07-01  0:08     ` Edgecombe, Rick P
2026-06-11 18:25   ` Vishal Annapurve
2026-07-03  5:48   ` Chao Gao
2026-07-06 20:18     ` Edgecombe, Rick P
2026-07-07  3:24       ` Yan Zhao
2026-07-07 19:08         ` Edgecombe, Rick P
2026-07-07 23:22   ` Sohil Mehta
2026-07-08  1:23     ` Edgecombe, Rick P
2026-05-26  2:35 ` [PATCH v6 02/11] x86/virt/tdx: Allocate page bitmap for Dynamic PAMT Rick Edgecombe
2026-06-04 16:14   ` Kiryl Shutsemau
2026-07-01  0:14     ` Edgecombe, Rick P
2026-06-11 18:47   ` Vishal Annapurve
2026-07-03  8:26   ` Chao Gao
2026-07-07  3:59   ` Yan Zhao
2026-07-07 21:25     ` Edgecombe, Rick P
2026-07-08  0:49   ` Sohil Mehta
2026-07-08  2:07     ` Edgecombe, Rick P
2026-07-08  2:10       ` Edgecombe, Rick P
2026-07-08  3:35         ` Sohil Mehta
2026-07-08 20:50           ` Edgecombe, Rick P
2026-07-08 21:20             ` Sohil Mehta
2026-05-26  2:35 ` [PATCH v6 03/11] x86/virt/tdx: Add tdx_alloc/free_control_page() helpers Rick Edgecombe
2026-06-08  2:11   ` Binbin Wu
2026-06-08  2:18     ` Yan Zhao
2026-07-01  0:15       ` Edgecombe, Rick P
2026-07-06 12:31   ` Chao Gao
2026-07-06 20:23     ` Edgecombe, Rick P
2026-07-08  3:50   ` Sohil Mehta
2026-07-08 22:54     ` Edgecombe, Rick P [this message]
2026-05-26  2:35 ` [PATCH v6 04/11] x86/virt/tdx: Allocate ref counts for Dynamic PAMT memory Rick Edgecombe
2026-07-02  7:20   ` Binbin Wu
2026-07-06 20:26     ` Edgecombe, Rick P
2026-07-06 13:22   ` Chao Gao
2026-07-06 20:26     ` Edgecombe, Rick P
2026-07-07  4:53   ` Yan Zhao
2026-07-07 22:32     ` Edgecombe, Rick P
2026-07-08 20:49   ` Sohil Mehta
2026-07-08 23:21     ` Edgecombe, Rick P
2026-05-26  2:35 ` [PATCH v6 05/11] x86/virt/tdx: Handle concurrent callers in tdx_pamt_get/put() Rick Edgecombe
2026-07-02  7:39   ` Binbin Wu
2026-07-06 20:27     ` Edgecombe, Rick P
2026-07-07  5:54   ` Chao Gao
2026-07-08  6:46   ` Yan Zhao
2026-07-09  0:33     ` Edgecombe, Rick P
2026-07-09  2:50       ` Yan Zhao
2026-07-08 19:01   ` Dave Hansen
2026-07-08 21:03     ` Edgecombe, Rick P
2026-07-08 21:11       ` Sohil Mehta
2026-07-08 21:13         ` Dave Hansen
2026-05-26  2:35 ` [PATCH v6 06/11] x86/virt/tdx: Optimize tdx_pamt_get/put() Rick Edgecombe
2026-05-26  8:57   ` Chao Gao
2026-05-26 16:42     ` Edgecombe, Rick P
2026-06-04 16:59       ` Kiryl Shutsemau
2026-06-05  5:40         ` Chao Gao
2026-06-05 11:42           ` Kiryl Shutsemau
2026-06-05 16:23             ` Dave Hansen
2026-06-08  9:14               ` Kiryl Shutsemau
2026-06-08  9:50               ` Yan Zhao
2026-07-01  1:45                 ` Edgecombe, Rick P
2026-07-01  5:37                   ` Yan Zhao
2026-07-01  1:05               ` Edgecombe, Rick P
2026-07-07  6:45   ` Chao Gao
2026-07-08  8:46   ` Yan Zhao
2026-07-09  0:44     ` Edgecombe, Rick P
2026-05-26  2:35 ` [PATCH v6 07/11] KVM: TDX: Allocate PAMT memory for TD and vCPU control structures Rick Edgecombe
2026-07-02  8:55   ` Binbin Wu
2026-07-06 23:47   ` Sean Christopherson
2026-07-06 23:54     ` Edgecombe, Rick P
2026-07-07  0:25       ` Sean Christopherson
2026-07-08 18:30     ` Dave Hansen
2026-07-07  6:54   ` Chao Gao
2026-07-08  9:13   ` Yan Zhao
2026-07-09  1:12     ` Edgecombe, Rick P
2026-07-09  3:18       ` Yan Zhao
2026-05-26  2:35 ` [PATCH v6 08/11] x86/tdx: Add APIs to support Dynamic PAMT ops from KVM's fault path Rick Edgecombe
2026-06-04 17:11   ` Kiryl Shutsemau
2026-07-02  9:32   ` Binbin Wu
2026-07-07  7:25   ` Chao Gao
2026-07-09  7:17   ` Yan Zhao
2026-05-26  2:35 ` [PATCH v6 09/11] KVM: TDX: Get/put PAMT pages when (un)mapping private memory Rick Edgecombe
2026-07-03  3:15   ` Binbin Wu
2026-07-06 20:47     ` Edgecombe, Rick P
2026-07-06 21:02       ` Sean Christopherson
2026-07-06 21:52         ` Edgecombe, Rick P
2026-07-08  8:35   ` Chao Gao
2026-07-09  1:22     ` Edgecombe, Rick P
2026-05-26  2:35 ` [PATCH v6 10/11] x86/virt/tdx: Enable Dynamic PAMT Rick Edgecombe
2026-06-04 17:14   ` Kiryl Shutsemau
2026-06-05  5:25     ` Chao Gao
2026-07-01  1:20       ` Edgecombe, Rick P
2026-07-06 20:48         ` Edgecombe, Rick P
2026-07-03  4:35   ` Binbin Wu
2026-05-26  2:35 ` [PATCH v6 11/11] Documentation/x86: Add documentation for TDX's " Rick Edgecombe
2026-07-03  4:54   ` Binbin Wu
2026-06-08  5:45 ` [PATCH v6 00/11] " Tony Lindgren
2026-07-06 21:01 ` Edgecombe, Rick P
2026-07-07 16:17   ` Sean Christopherson
2026-07-07 17:25     ` Edgecombe, Rick P

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=e268cced7f18e0d25997a9dfa1e0150f34d5bd60.camel@intel.com \
    --to=rick.p.edgecombe@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=kirill.shutemov@linux.intel.com \
    --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=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