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);
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.