[PATCH 16/21] mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES
Hoan Tran
hoan at os.amperecomputing.com
Tue May 19 07:38:50 AEST 2020
Hi Mike and Baoquan,
On 4/22/20 6:13 PM, Baoquan He wrote:
> On 04/12/20 at 10:48pm, Mike Rapoport wrote:
>> From: Mike Rapoport <rppt at linux.ibm.com>
>>
>> The commit f47ac088c406 ("mm: memmap_init: iterate over memblock regions
>
> This commit id should be a temporary one, will be changed when merged
> into maintainer's tree and linus's tree. Only saying last patch plus the
> patch subject is OK?
>
>> rather that check each PFN") made early_pfn_in_nid() obsolete and since
>> CONFIG_NODES_SPAN_OTHER_NODES is only used to pick a stub or a real
>> implementation of early_pfn_in_nid() it is also not needed anymore.
>>
>> Remove both early_pfn_in_nid() and the CONFIG_NODES_SPAN_OTHER_NODES.
>>
>> Co-developed-by: Hoan Tran <Hoan at os.amperecomputing.com>
>> Signed-off-by: Hoan Tran <Hoan at os.amperecomputing.com>
>> Signed-off-by: Mike Rapoport <rppt at linux.ibm.com>
>> ---
>> arch/powerpc/Kconfig | 9 ---------
>> arch/sparc/Kconfig | 9 ---------
>> arch/x86/Kconfig | 9 ---------
>> mm/page_alloc.c | 20 --------------------
>> 4 files changed, 47 deletions(-)
>>
>> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
>> index 5f86b22b7d2c..74f316deeae1 100644
>> --- a/arch/powerpc/Kconfig
>> +++ b/arch/powerpc/Kconfig
>> @@ -685,15 +685,6 @@ config ARCH_MEMORY_PROBE
>> def_bool y
>> depends on MEMORY_HOTPLUG
>>
>> -# Some NUMA nodes have memory ranges that span
>> -# other nodes. Even though a pfn is valid and
>> -# between a node's start and end pfns, it may not
>> -# reside on that node. See memmap_init_zone()
>> -# for details.
>> -config NODES_SPAN_OTHER_NODES
>> - def_bool y
>> - depends on NEED_MULTIPLE_NODES
>> -
>> config STDBINUTILS
>> bool "Using standard binutils settings"
>> depends on 44x
>> diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
>> index 795206b7b552..0e4f3891b904 100644
>> --- a/arch/sparc/Kconfig
>> +++ b/arch/sparc/Kconfig
>> @@ -286,15 +286,6 @@ config NODES_SHIFT
>> Specify the maximum number of NUMA Nodes available on the target
>> system. Increases memory reserved to accommodate various tables.
>>
>> -# Some NUMA nodes have memory ranges that span
>> -# other nodes. Even though a pfn is valid and
>> -# between a node's start and end pfns, it may not
>> -# reside on that node. See memmap_init_zone()
>> -# for details.
>> -config NODES_SPAN_OTHER_NODES
>> - def_bool y
>> - depends on NEED_MULTIPLE_NODES
>> -
>> config ARCH_SPARSEMEM_ENABLE
>> def_bool y if SPARC64
>> select SPARSEMEM_VMEMMAP_ENABLE
>> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>> index 9d3e95b4fb85..37dac095659e 100644
>> --- a/arch/x86/Kconfig
>> +++ b/arch/x86/Kconfig
>> @@ -1581,15 +1581,6 @@ config X86_64_ACPI_NUMA
>> ---help---
>> Enable ACPI SRAT based node topology detection.
>>
>> -# Some NUMA nodes have memory ranges that span
>> -# other nodes. Even though a pfn is valid and
>> -# between a node's start and end pfns, it may not
>> -# reside on that node. See memmap_init_zone()
>> -# for details.
>> -config NODES_SPAN_OTHER_NODES
>> - def_bool y
>> - depends on X86_64_ACPI_NUMA
>> -
>> config NUMA_EMU
>> bool "NUMA emulation"
>> depends on NUMA
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index c43ce8709457..343d87b8697d 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -1541,26 +1541,6 @@ int __meminit early_pfn_to_nid(unsigned long pfn)
>> }
>> #endif /* CONFIG_NEED_MULTIPLE_NODES */
>>
>> -#ifdef CONFIG_NODES_SPAN_OTHER_NODES
>> -/* Only safe to use early in boot when initialisation is single-threaded */
>> -static inline bool __meminit early_pfn_in_nid(unsigned long pfn, int node)
>> -{
>> - int nid;
>> -
>> - nid = __early_pfn_to_nid(pfn, &early_pfnnid_cache);
>> - if (nid >= 0 && nid != node)
>> - return false;
>> - return true;
>> -}
>> -
>> -#else
>> -static inline bool __meminit early_pfn_in_nid(unsigned long pfn, int node)
>> -{
>> - return true;
>> -}
>> -#endif
>
> And macro early_pfn_valid() is not needed either, we may need remove it
> too.
>
> Otherwise, removing NODES_SPAN_OTHER_NODES in this patch looks good.
>
> Reviewed-by: Baoquan He <bhe at redhat.com>
I have tested this patch set on Arm64, and it worked as expected with
the case where the node memory spans to other nodes or the old
NODES_SPAN_OTHER_NODES config.
Hope to the whole patch set will be upstream soon.
Thanks and Regards
Hoan
>
>> -
>> -
>> void __init memblock_free_pages(struct page *page, unsigned long pfn,
>> unsigned int order)
>> {
>> --
>> 2.25.1
>>
>
More information about the Linuxppc-dev
mailing list