On Fri, 2023-06-09 at 02:24 +0300, kirill.shutemov@xxxxxxxxxxxxxxx wrote: > On Mon, Jun 05, 2023 at 02:27:25AM +1200, Kai Huang wrote: > > diff --git a/arch/x86/virt/vmx/tdx/tdx.c b/arch/x86/virt/vmx/tdx/tdx.c > > index fa9fa8bc581a..5f0499ba5d67 100644 > > --- a/arch/x86/virt/vmx/tdx/tdx.c > > +++ b/arch/x86/virt/vmx/tdx/tdx.c > > @@ -265,7 +265,7 @@ static int tdx_get_sysinfo(struct tdsysinfo_struct *sysinfo, > > * overlap. > > */ > > static int add_tdx_memblock(struct list_head *tmb_list, unsigned long start_pfn, > > - unsigned long end_pfn) > > + unsigned long end_pfn, int nid) > > { > > struct tdx_memblock *tmb; > > > > @@ -276,6 +276,7 @@ static int add_tdx_memblock(struct list_head *tmb_list, unsigned long start_pfn, > > INIT_LIST_HEAD(&tmb->list); > > tmb->start_pfn = start_pfn; > > tmb->end_pfn = end_pfn; > > + tmb->nid = nid; > > > > /* @tmb_list is protected by mem_hotplug_lock */ > > list_add_tail(&tmb->list, tmb_list); > > @@ -303,9 +304,9 @@ static void free_tdx_memlist(struct list_head *tmb_list) > > static int build_tdx_memlist(struct list_head *tmb_list) > > { > > unsigned long start_pfn, end_pfn; > > - int i, ret; > > + int i, nid, ret; > > > > - for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, NULL) { > > + for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) { > > /* > > * The first 1MB is not reported as TDX convertible memory. > > * Although the first 1MB is always reserved and won't end up > > @@ -321,7 +322,7 @@ static int build_tdx_memlist(struct list_head *tmb_list) > > * memblock has already guaranteed they are in address > > * ascending order and don't overlap. > > */ > > - ret = add_tdx_memblock(tmb_list, start_pfn, end_pfn); > > + ret = add_tdx_memblock(tmb_list, start_pfn, end_pfn, nid); > > if (ret) > > goto err; > > } > > > These three hunks and change to struct tdx_memblock looks unrelated. > Why not fold this to 09/20? Sorry I missed to reply this. The @nid is used to try to allocate the PAMT from local node. It only gets used in this patch. Originally (in v7) I had it in patch 09 but Dave suggested to move to this patch (see the first comment in below link): https://lore.kernel.org/lkml/8e6803f5-bec6-843d-f3c4-75006ffd0d2f@xxxxxxxxx/ > > + > > +#define TDX_PS_NR (TDX_PS_1G + 1) > > This should be next to the rest TDX_PS_*. > Done.