All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hoan Tran <hoan@os.amperecomputing.com>
To: Baoquan He <bhe@redhat.com>, Mike Rapoport <rppt@kernel.org>
Cc: Rich Felker <dalias@libc.org>,
	linux-ia64@vger.kernel.org, linux-doc@vger.kernel.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Michal Hocko <mhocko@kernel.org>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Max Filippov <jcmvbkbc@gmail.com>, Guo Ren <guoren@kernel.org>,
	linux-csky@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-hexagon@vger.kernel.org, linux-riscv@lists.infradead.org,
	Greg Ungerer <gerg@linux-m68k.org>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-snps-arc@lists.infradead.org, linux-c6x-dev@linux-c6x.org,
	Brian Cain <bcain@codeaurora.org>,
	Jonathan Corbet <corbet@lwn.net>,
	linux-sh@vger.kernel.org, Michael Ellerman <mpe@ellerman.id.au>,
	Helge Deller <deller@gmx.de>,
	x86@kernel.org, Russell King <linux@armlinux.org.uk>,
	Ley Foon Tan <ley.foon.tan@intel.com>,
	Mike
Subject: Re: [PATCH 16/21] mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES
Date: Mon, 18 May 2020 14:38:50 -0700	[thread overview]
Message-ID: <84f572b2-9e61-f9d1-008d-47ac978f5ccc@os.amperecomputing.com> (raw)
In-Reply-To: <20200423011312.GY4247@MiWiFi-R3L-srv>

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@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@os.amperecomputing.com>
>> Signed-off-by: Hoan Tran <Hoan@os.amperecomputing.com>
>> Signed-off-by: Mike Rapoport <rppt@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@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
>>
> 

WARNING: multiple messages have this Message-ID (diff)
From: Hoan Tran <hoan@os.amperecomputing.com>
To: Baoquan He <bhe@redhat.com>, Mike Rapoport <rppt@kernel.org>
Cc: Rich Felker <dalias@libc.org>,
	linux-ia64@vger.kernel.org, linux-doc@vger.kernel.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Michal Hocko <mhocko@kernel.org>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Max Filippov <jcmvbkbc@gmail.com>, Guo Ren <guoren@kernel.org>,
	linux-csky@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-hexagon@vger.kernel.org, linux-riscv@lists.infradead.org,
	Greg Ungerer <gerg@linux-m68k.org>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-snps-arc@lists.infradead.org, linux-c6x-dev@linux-c6x.org,
	Brian Cain <bcain@codeaurora.org>,
	Jonathan Corbet <corbet@lwn.net>,
	linux-sh@vger.kernel.org, Michael Ellerman <mpe@ellerman.id.au>,
	Helge Deller <deller@gmx.de>,
	x86@kernel.org, Russell King <linux@armlinux.org.uk>,
	Ley Foon Tan <ley.foon.tan@intel.com>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-parisc@vger.kernel.org, Mark Salter <msalter@redhat.com>,
	Matt Turner <mattst88@gmail.com>,
	linux-mips@vger.kernel.org,
	uclinux-h8-devel@lists.sourceforge.jp,
	linux-xtensa@linux-xtensa.org, linux-alpha@vger.kernel.org,
	linux-um@lists.infradead.org, linux-m68k@lists.linux-m68k.org,
	Tony Luck <tony.luck@intel.com>,
	Greentime Hu <green.hu@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Stafford Horne <shorne@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
	linux-arm-kernel@lists.infradead.org,
	Michal Simek <monstr@monstr.eu>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Nick Hu <nickhu@andestech.com>,
	linux-mm@kvack.org, Vineet Gupta <vgupta@synopsys.com>,
	linux-kernel@vger.kernel.org, openrisc@lists.librecores.org,
	Richard Weinberger <richard@nod.at>,
	Andrew Morton <akpm@linux-foundation.org>,
	linuxppc-dev@lists.ozlabs.org,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 16/21] mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES
Date: Mon, 18 May 2020 14:38:50 -0700	[thread overview]
Message-ID: <84f572b2-9e61-f9d1-008d-47ac978f5ccc@os.amperecomputing.com> (raw)
In-Reply-To: <20200423011312.GY4247@MiWiFi-R3L-srv>

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@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@os.amperecomputing.com>
>> Signed-off-by: Hoan Tran <Hoan@os.amperecomputing.com>
>> Signed-off-by: Mike Rapoport <rppt@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@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
>>
> 


WARNING: multiple messages have this Message-ID (diff)
From: Hoan Tran <hoan@os.amperecomputing.com>
To: Baoquan He <bhe@redhat.com>, Mike Rapoport <rppt@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	Andrew Morton <akpm@linux-foundation.org>,
	Brian Cain <bcain@codeaurora.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	"David S. Miller" <davem@davemloft.net>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Greentime Hu <green.hu@gmail.com>,
	Greg Ungerer <gerg@linux-m68k.org>, Guan Xuetao <gxt@pku.edu.cn>,
	Guo Ren <guoren@kernel.org>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Helge Deller <deller@gmx.de>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Jonathan Corbet <corbet@lwn.net>,
	Ley Foon Tan <ley.foon.tan@intel.com>,
	Mark Salter <msalter@redhat.com>,
	Matt Turner <mattst88@gmail.com>,
	Max Filippov <jcmvbkbc@gmail.com>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Michal Hocko <mhocko@kernel.org>, Michal Simek <monstr@monstr.eu>,
	Nick Hu <nickhu@andestech.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Richard Weinberger <richard@nod.at>,
	Rich Felker <dalias@libc.org>,
	Russell King <linux@armlinux.org.uk>,
	Stafford Horne <shorne@gmail.com>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Tony Luck <tony.luck@intel.com>,
	Vineet Gupta <vgupta@synopsys.com>,
	x86@kernel.org, Yoshinori Sato <ysato@users.sourceforge.jp>,
	linux-alpha@vger.kernel.org, linux-arch@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-c6x-dev@linux-c6x.org, linux-csky@vger.kernel.org,
	linux-doc@vger.kernel.org, linux-hexagon@vger.kernel.org,
	linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org,
	linux-mips@vger.kernel.org, linux-mm@kvack.org,
	linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
	linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	linux-sh@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	linux-um@lists.infradead.org, linux-xtensa@linux-xtensa.org,
	openrisc@lists.librecores.org, sparclinux@vger.kernel.org,
	uclinux-h8-devel@lists.sourceforge.jp,
	Mike Rapoport <rppt@linux.ibm.com>
Subject: Re: [PATCH 16/21] mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES
Date: Mon, 18 May 2020 14:38:50 -0700	[thread overview]
Message-ID: <84f572b2-9e61-f9d1-008d-47ac978f5ccc@os.amperecomputing.com> (raw)
In-Reply-To: <20200423011312.GY4247@MiWiFi-R3L-srv>

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@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@os.amperecomputing.com>
>> Signed-off-by: Hoan Tran <Hoan@os.amperecomputing.com>
>> Signed-off-by: Mike Rapoport <rppt@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@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
>>
> 


WARNING: multiple messages have this Message-ID (diff)
From: Hoan Tran <hoan@os.amperecomputing.com>
To: Baoquan He <bhe@redhat.com>, Mike Rapoport <rppt@kernel.org>
Cc: Rich Felker <dalias@libc.org>,
	linux-ia64@vger.kernel.org, linux-doc@vger.kernel.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Michal Hocko <mhocko@kernel.org>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Max Filippov <jcmvbkbc@gmail.com>, Guo Ren <guoren@kernel.org>,
	linux-csky@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-hexagon@vger.kernel.org, linux-riscv@lists.infradead.org,
	Greg Ungerer <gerg@linux-m68k.org>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-snps-arc@lists.infradead.org, linux-c6x-dev@linux-c6x.org,
	Brian Cain <bcain@codeaurora.org>,
	Jonathan Corbet <corbet@lwn.net>,
	linux-sh@vger.kernel.org, Helge Deller <deller@gmx.de>,
	x86@kernel.org, Russell King <linux@armlinux.org.uk>,
	Ley Foon Tan <ley.foon.tan@intel.com>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-parisc@vger.kernel.org, Mark Salter <msalter@redhat.com>,
	Matt Turner <mattst88@gmail.com>,
	linux-mips@vger.kernel.org,
	uclinux-h8-devel@lists.sourceforge.jp,
	linux-xtensa@linux-xtensa.org, linux-alpha@vger.kernel.org,
	linux-um@lists.infradead.org, linux-m68k@lists.linux-m68k.org,
	Tony Luck <tony.luck@intel.com>,
	Greentime Hu <green.hu@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Stafford Horne <shorne@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
	linux-arm-kernel@lists.infradead.org,
	Michal Simek <monstr@monstr.eu>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Nick Hu <nickhu@andestech.com>,
	linux-mm@kvack.org, Vineet Gupta <vgupta@synopsys.com>,
	linux-kernel@vger.kernel.org, openrisc@lists.librecores.org,
	Richard Weinberger <richard@nod.at>,
	Andrew Morton <akpm@linux-foundation.org>,
	linuxppc-dev@lists.ozlabs.org,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 16/21] mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES
Date: Mon, 18 May 2020 14:38:50 -0700	[thread overview]
Message-ID: <84f572b2-9e61-f9d1-008d-47ac978f5ccc@os.amperecomputing.com> (raw)
In-Reply-To: <20200423011312.GY4247@MiWiFi-R3L-srv>

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@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@os.amperecomputing.com>
>> Signed-off-by: Hoan Tran <Hoan@os.amperecomputing.com>
>> Signed-off-by: Mike Rapoport <rppt@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@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
>>
> 

WARNING: multiple messages have this Message-ID (diff)
From: Hoan Tran <hoan@os.amperecomputing.com>
To: Baoquan He <bhe@redhat.com>, Mike Rapoport <rppt@kernel.org>
Cc: Rich Felker <dalias@libc.org>,
	linux-ia64@vger.kernel.org, linux-doc@vger.kernel.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	Heiko Carstens <heiko.carstens@de.ibm.com>,
	Michal Hocko <mhocko@kernel.org>,
	"James E.J. Bottomley" <James.Bottomley@hansenpartnership.com>,
	Max Filippov <jcmvbkbc@gmail.com>, Guo Ren <guoren@kernel.org>,
	linux-csky@vger.kernel.org, sparclinux@vger.kernel.org,
	linux-hexagon@vger.kernel.org, linux-riscv@lists.infradead.org,
	Greg Ungerer <gerg@linux-m68k.org>,
	linux-arch@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-snps-arc@lists.infradead.org, linux-c6x-dev@linux-c6x.org,
	Brian Cain <bcain@codeaurora.org>,
	Jonathan Corbet <corbet@lwn.net>,
	linux-sh@vger.kernel.org, Michael Ellerman <mpe@ellerman.id.au>,
	Helge Deller <deller@gmx.de>,
	x86@kernel.org, Russell King <linux@armlinux.org.uk>,
	Ley Foon Tan <ley.foon.tan@intel.com>,
	Mike Rapoport <rppt@linux.ibm.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-parisc@vger.kernel.org, Mark Salter <msalter@redhat.com>,
	Matt Turner <mattst88@gmail.com>,
	linux-mips@vger.kernel.org,
	uclinux-h8-devel@lists.sourceforge.jp,
	linux-xtensa@linux-xtensa.org, linux-alpha@vger.kernel.org,
	linux-um@lists.infradead.org, linux-m68k@lists.linux-m68k.org,
	Tony Luck <tony.luck@intel.com>,
	Greentime Hu <green.hu@gmail.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Stafford Horne <shorne@gmail.com>, Guan Xuetao <gxt@pku.edu.cn>,
	linux-arm-kernel@lists.infradead.org,
	Michal Simek <monstr@monstr.eu>,
	Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Yoshinori Sato <ysato@users.sourceforge.jp>,
	Nick Hu <nickhu@andestech.com>,
	linux-mm@kvack.org, Vineet Gupta <vgupta@synopsys.com>,
	linux-kernel@vger.kernel.org, openrisc@lists.librecores.org,
	Richard Weinberger <richard@nod.at>,
	Andrew Morton <akpm@linux-foundation.org>,
	linuxppc-dev@lists.ozlabs.org,
	"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 16/21] mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES
Date: Mon, 18 May 2020 14:38:50 -0700	[thread overview]
Message-ID: <84f572b2-9e61-f9d1-008d-47ac978f5ccc@os.amperecomputing.com> (raw)
In-Reply-To: <20200423011312.GY4247@MiWiFi-R3L-srv>

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@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@os.amperecomputing.com>
>> Signed-off-by: Hoan Tran <Hoan@os.amperecomputing.com>
>> Signed-off-by: Mike Rapoport <rppt@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@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
>>
> 

_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

WARNING: multiple messages have this Message-ID (diff)
From: Hoan Tran <hoan@os.amperecomputing.com>
To: openrisc@lists.librecores.org
Subject: [OpenRISC] [PATCH 16/21] mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES
Date: Mon, 18 May 2020 14:38:50 -0700	[thread overview]
Message-ID: <84f572b2-9e61-f9d1-008d-47ac978f5ccc@os.amperecomputing.com> (raw)
In-Reply-To: <20200423011312.GY4247@MiWiFi-R3L-srv>

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@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@os.amperecomputing.com>
>> Signed-off-by: Hoan Tran <Hoan@os.amperecomputing.com>
>> Signed-off-by: Mike Rapoport <rppt@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@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
>>
> 

  parent reply	other threads:[~2020-05-18 21:38 UTC|newest]

Thread overview: 297+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-12 19:48 [PATCH 00/21] mm: rework free_area_init*() funcitons Mike Rapoport
2020-04-12 19:48 ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48 ` Mike Rapoport
2020-04-12 19:48 ` Mike Rapoport
2020-04-12 19:48 ` Mike Rapoport
2020-04-12 19:48 ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 01/21] mm: memblock: replace dereferences of memblock_region.nid with API calls Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-21  2:06   ` Baoquan He
2020-04-21  2:06     ` [OpenRISC] " Baoquan He
2020-04-21  2:06     ` Baoquan He
2020-04-21  2:06     ` Baoquan He
2020-04-21  2:06     ` Baoquan He
2020-04-21  2:06     ` Baoquan He
2020-04-12 19:48 ` [PATCH 02/21] mm: make early_pfn_to_nid() and related defintions close to each other Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-21  2:24   ` Baoquan He
2020-04-21  2:24     ` [OpenRISC] " Baoquan He
2020-04-21  2:24     ` Baoquan He
2020-04-21  2:24     ` Baoquan He
2020-04-21  2:24     ` Baoquan He
2020-04-21  2:24     ` Baoquan He
2020-04-21  8:49     ` Mike Rapoport
2020-04-21  8:49       ` [OpenRISC] " Mike Rapoport
2020-04-21  8:49       ` Mike Rapoport
2020-04-21  8:49       ` Mike Rapoport
2020-04-21  8:49       ` Mike Rapoport
2020-04-21  8:49       ` Mike Rapoport
2020-04-21  9:33       ` Baoquan He
2020-04-21  9:33         ` [OpenRISC] " Baoquan He
2020-04-21  9:33         ` Baoquan He
2020-04-21  9:33         ` Baoquan He
2020-04-21  9:33         ` Baoquan He
2020-04-21  9:33         ` Baoquan He
2020-04-21  3:31   ` Baoquan He
2020-04-21  3:31     ` [OpenRISC] " Baoquan He
2020-04-21  3:31     ` Baoquan He
2020-04-21  3:31     ` Baoquan He
2020-04-21  3:31     ` Baoquan He
2020-04-21  3:31     ` Baoquan He
2020-04-21  8:39     ` Mike Rapoport
2020-04-21  8:39       ` [OpenRISC] " Mike Rapoport
2020-04-21  8:39       ` Mike Rapoport
2020-04-21  8:39       ` Mike Rapoport
2020-04-21  8:39       ` Mike Rapoport
2020-04-21  8:39       ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 03/21] mm: remove CONFIG_HAVE_MEMBLOCK_NODE_MAP option Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-21  4:23   ` Baoquan He
2020-04-21  4:23     ` [OpenRISC] " Baoquan He
2020-04-21  4:23     ` Baoquan He
2020-04-21  4:23     ` Baoquan He
2020-04-21  4:23     ` Baoquan He
2020-04-21  4:23     ` Baoquan He
2020-04-21  9:09     ` Mike Rapoport
2020-04-21  9:09       ` [OpenRISC] " Mike Rapoport
2020-04-21  9:09       ` Mike Rapoport
2020-04-21  9:09       ` Mike Rapoport
2020-04-21  9:09       ` Mike Rapoport
2020-04-21  9:09       ` Mike Rapoport
2020-04-21  9:45       ` Baoquan He
2020-04-21  9:45         ` [OpenRISC] " Baoquan He
2020-04-21  9:45         ` Baoquan He
2020-04-21  9:45         ` Baoquan He
2020-04-21  9:45         ` Baoquan He
2020-04-21  9:45         ` Baoquan He
2020-04-12 19:48 ` [PATCH 04/21] mm: free_area_init: use maximal zone PFNs rather than zone sizes Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-22 23:41   ` Baoquan He
2020-04-22 23:41     ` [OpenRISC] " Baoquan He
2020-04-22 23:41     ` Baoquan He
2020-04-22 23:41     ` Baoquan He
2020-04-22 23:41     ` Baoquan He
2020-04-22 23:41     ` Baoquan He
2020-06-15  3:53   ` Greg Ungerer
2020-06-15  3:53     ` Greg Ungerer
2020-06-15  3:53     ` [OpenRISC] " Greg Ungerer
2020-06-15  3:53     ` Greg Ungerer
2020-06-15  3:53     ` Greg Ungerer
2020-06-15  3:53     ` Greg Ungerer
2020-06-15  3:53     ` Greg Ungerer
2020-06-15  3:53     ` Greg Ungerer
2020-06-15  6:22     ` Mike Rapoport
2020-06-15  6:22       ` Mike Rapoport
2020-06-15  6:22       ` [OpenRISC] " Mike Rapoport
2020-06-15  6:22       ` Mike Rapoport
2020-06-15  6:22       ` Mike Rapoport
2020-06-15  6:22       ` Mike Rapoport
2020-06-15  6:22       ` Mike Rapoport
2020-06-15  6:22       ` Mike Rapoport
2020-06-15  7:17       ` Greg Ungerer
2020-06-15  7:17         ` Greg Ungerer
2020-06-15  7:17         ` [OpenRISC] " Greg Ungerer
2020-06-15  7:17         ` Greg Ungerer
2020-06-15  7:17         ` Greg Ungerer
2020-06-15  7:17         ` Greg Ungerer
2020-06-15  7:17         ` Greg Ungerer
2020-06-15  7:17         ` Greg Ungerer
2020-06-15  7:17         ` Greg Ungerer
2020-06-15  8:29         ` Mike Rapoport
2020-06-15 13:02           ` Greg Ungerer
2020-04-12 19:48 ` [PATCH 05/21] mm: use free_area_init() instead of free_area_init_nodes() Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-23  0:02   ` Baoquan He
2020-04-23  0:02     ` [OpenRISC] " Baoquan He
2020-04-23  0:02     ` Baoquan He
2020-04-23  0:02     ` Baoquan He
2020-04-23  0:02     ` Baoquan He
2020-04-23  0:02     ` Baoquan He
2020-04-12 19:48 ` [PATCH 06/21] alpha: simplify detection of memory zone boundaries Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 07/21] arm: " Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 08/21] arm64: simplify detection of memory zone boundaries for UMA configs Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 09/21] csky: simplify detection of memory zone boundaries Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 10/21] m68k: mm: " Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 11/21] parisc: " Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 12/21] sparc32: " Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 13/21] unicore32: " Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 14/21] xtensa: " Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 15/21] mm: memmap_init: iterate over memblock regions rather that check each PFN Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-20 14:26   ` Qian Cai
2020-04-20 14:26     ` [OpenRISC] " Qian Cai
2020-04-20 14:26     ` Qian Cai
2020-04-20 14:26     ` Qian Cai
2020-04-20 14:26     ` Qian Cai
2020-04-20 14:26     ` Qian Cai
2020-04-24  7:22   ` David Hildenbrand
2020-04-24  7:22     ` [OpenRISC] " David Hildenbrand
2020-04-24  7:22     ` David Hildenbrand
2020-04-24  7:22     ` David Hildenbrand
2020-04-24  7:22     ` David Hildenbrand
2020-04-24  7:22     ` David Hildenbrand
2020-04-25 16:49     ` Mike Rapoport
2020-04-25 16:49       ` [OpenRISC] " Mike Rapoport
2020-04-25 16:49       ` Mike Rapoport
2020-04-25 16:49       ` Mike Rapoport
2020-04-25 16:49       ` Mike Rapoport
2020-04-25 16:49       ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 16/21] mm: remove early_pfn_in_nid() and CONFIG_NODES_SPAN_OTHER_NODES Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-23  1:13   ` Baoquan He
2020-04-23  1:13     ` [OpenRISC] " Baoquan He
2020-04-23  1:13     ` Baoquan He
2020-04-23  1:13     ` Baoquan He
2020-04-23  1:13     ` Baoquan He
2020-04-23  1:13     ` Baoquan He
2020-04-23  5:50     ` Mike Rapoport
2020-04-23  5:50       ` [OpenRISC] " Mike Rapoport
2020-04-23  5:50       ` Mike Rapoport
2020-04-23  5:50       ` Mike Rapoport
2020-04-23  5:50       ` Mike Rapoport
2020-04-23  5:50       ` Mike Rapoport
2020-05-18 21:38     ` Hoan Tran [this message]
2020-05-18 21:38       ` [OpenRISC] " Hoan Tran
2020-05-18 21:38       ` Hoan Tran
2020-05-18 21:38       ` Hoan Tran
2020-05-18 21:38       ` Hoan Tran
2020-05-18 21:38       ` Hoan Tran
2020-04-12 19:48 ` [PATCH 17/21] mm: free_area_init: allow defining max_zone_pfn in descending order Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-23  2:53   ` Baoquan He
2020-04-23  2:53     ` [OpenRISC] " Baoquan He
2020-04-23  2:53     ` Baoquan He
2020-04-23  2:53     ` Baoquan He
2020-04-23  2:53     ` Baoquan He
2020-04-23  2:53     ` Baoquan He
2020-04-23  2:57     ` Baoquan He
2020-04-23  2:57       ` [OpenRISC] " Baoquan He
2020-04-23  2:57       ` Baoquan He
2020-04-23  2:57       ` Baoquan He
2020-04-23  2:57       ` Baoquan He
2020-04-23  2:57       ` Baoquan He
2020-04-23  5:55       ` Mike Rapoport
2020-04-23  5:55         ` [OpenRISC] " Mike Rapoport
2020-04-23  5:55         ` Mike Rapoport
2020-04-23  5:55         ` Mike Rapoport
2020-04-23  5:55         ` Mike Rapoport
2020-04-23  5:55         ` Mike Rapoport
2020-04-24  0:33         ` Baoquan He
2020-04-24  0:33           ` [OpenRISC] " Baoquan He
2020-04-24  0:33           ` Baoquan He
2020-04-24  0:33           ` Baoquan He
2020-04-24  0:33           ` Baoquan He
2020-04-24  0:33           ` Baoquan He
2020-04-12 19:48 ` [PATCH 18/21] mm: rename free_area_init_node() to free_area_init_memoryless_node() Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-23  3:14   ` Baoquan He
2020-04-23  3:14     ` [OpenRISC] " Baoquan He
2020-04-23  3:14     ` Baoquan He
2020-04-23  3:14     ` Baoquan He
2020-04-23  3:14     ` Baoquan He
2020-04-23  3:14     ` Baoquan He
2020-04-23  6:18     ` Mike Rapoport
2020-04-23  6:18       ` [OpenRISC] " Mike Rapoport
2020-04-23  6:18       ` Mike Rapoport
2020-04-23  6:18       ` Mike Rapoport
2020-04-23  6:18       ` Mike Rapoport
2020-04-23  6:18       ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 19/21] mm: clean up free_area_init_node() and its helpers Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 20/21] mm: simplify find_min_pfn_with_active_regions() Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48 ` [PATCH 21/21] docs/vm: update memory-models documentation Mike Rapoport
2020-04-12 19:48   ` [OpenRISC] " Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport
2020-04-12 19:48   ` Mike Rapoport

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=84f572b2-9e61-f9d1-008d-47ac978f5ccc@os.amperecomputing.com \
    --to=hoan@os.amperecomputing.com \
    --cc=James.Bottomley@hansenpartnership.com \
    --cc=bcain@codeaurora.org \
    --cc=bhe@redhat.com \
    --cc=catalin.marinas@arm.com \
    --cc=corbet@lwn.net \
    --cc=dalias@libc.org \
    --cc=deller@gmx.de \
    --cc=gerg@linux-m68k.org \
    --cc=guoren@kernel.org \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jcmvbkbc@gmail.com \
    --cc=ley.foon.tan@intel.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-c6x-dev@linux-c6x.org \
    --cc=linux-csky@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-hexagon@vger.kernel.org \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=linux-sh@vger.kernel.org \
    --cc=linux-snps-arc@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=mhocko@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=rppt@kernel.org \
    --cc=sparclinux@vger.kernel.org \
    --cc=x86@kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.