Re: [PATCH v3 11/26] x86/numa: use get_pfn_range_for_nid to verify that node spans memory
Jonathan Cameron <[email protected]>
| Newsgroups | gmane.linux.ports.ppc.embedded,gmane.linux.ports.mips,gmane.linux.kernel.mm,gmane.linux.ports.sparc,gmane.linux.kernel.cross-arch,gmane.linux.ports.sh.devel,gmane.linux.acpi.devel,gmane.linux.ports.arm.kernel,gmane.linux.documentation,gmane.linux.kernel,gmane.linux.ports.riscv |
|---|---|
| Organization | Huawei Technologies Research and Development (UK) Ltd. |
| Message-ID | <[email protected]> |
On Thu, 1 Aug 2024 09:08:11 +0300 Mike Rapoport <[email protected]> wrote: > From: "Mike Rapoport (Microsoft)" <[email protected]> > > Instead of looping over numa_meminfo array to detect node's start and > end addresses use get_pfn_range_for_init(). > > This is shorter and make it easier to lift numa_memblks to generic code. > > Signed-off-by: Mike Rapoport (Microsoft) <[email protected]> > Tested-by: Zi Yan <[email protected]> # for x86_64 and arm64 Fair enough given code a few lines up has set the node for all the memblocks so this should I think give the same effective result. Reviewed-by: Jonathan Cameron <[email protected]> > --- > arch/x86/mm/numa.c | 13 +++---------- > 1 file changed, 3 insertions(+), 10 deletions(-) > > diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c > index edfc38803779..cfe7e5477cf8 100644 > --- a/arch/x86/mm/numa.c > +++ b/arch/x86/mm/numa.c > @@ -521,17 +521,10 @@ static int __init numa_register_memblks(struct numa_meminfo *mi) > > /* Finally register nodes. */ > for_each_node_mask(nid, node_possible_map) { > - u64 start = PFN_PHYS(max_pfn); > - u64 end = 0; > + unsigned long start_pfn, end_pfn; > > - for (i = 0; i < mi->nr_blks; i++) { > - if (nid != mi->blk[i].nid) > - continue; > - start = min(mi->blk[i].start, start); > - end = max(mi->blk[i].end, end); > - } > - > - if (start >= end) > + get_pfn_range_for_nid(nid, &start_pfn, &end_pfn); > + if (start_pfn >= end_pfn) > continue; > > alloc_node_data(nid);