diff mbox

powerpc: enable CONFIG_HAVE_MEMORYLESS_NODES

Message ID 20140128183457.GA9315@linux.vnet.ibm.com (mailing list archive)
State Superseded
Delegated to: Benjamin Herrenschmidt
Headers show

Commit Message

Nishanth Aravamudan Jan. 28, 2014, 6:34 p.m. UTC
Anton Blanchard found an issue with an LPAR that had no memory in Node
0. Christoph Lameter recommended, as one possible solution, to use
numa_mem_id() for locality of the nearest memory node-wise. However,
numa_mem_id() [and the other related APIs] are only useful if
CONFIG_HAVE_MEMORYLESS_NODES is set. This is only the case for ia64
currently, but clearly we can have memoryless nodes on ppc64. Add the
Kconfig option and define it to be the same value as CONFIG_NUMA.

On the LPAR in question, which was very inefficiently using slabs, this
took the slab consumption at boot from roughly 7GB to roughly 4GB.
    
---
Ben, the only question I have wrt this change is if it's appropriate to
change it for all powerpc configs (that have NUMA on)?

Comments

Christoph Lameter (Ampere) Jan. 29, 2014, 3:55 p.m. UTC | #1
On Tue, 28 Jan 2014, Nishanth Aravamudan wrote:

> Anton Blanchard found an issue with an LPAR that had no memory in Node
> 0. Christoph Lameter recommended, as one possible solution, to use
> numa_mem_id() for locality of the nearest memory node-wise. However,
> numa_mem_id() [and the other related APIs] are only useful if
> CONFIG_HAVE_MEMORYLESS_NODES is set. This is only the case for ia64
> currently, but clearly we can have memoryless nodes on ppc64. Add the
> Kconfig option and define it to be the same value as CONFIG_NUMA.

Well this is trivial but if you need encouragement:

Reviewed-by: Christoph Lameter <cl@linux.com>
Nishanth Aravamudan Feb. 13, 2014, 9:41 p.m. UTC | #2
On 28.01.2014 [10:34:57 -0800], Nishanth Aravamudan wrote:
> Anton Blanchard found an issue with an LPAR that had no memory in Node
> 0. Christoph Lameter recommended, as one possible solution, to use
> numa_mem_id() for locality of the nearest memory node-wise. However,
> numa_mem_id() [and the other related APIs] are only useful if
> CONFIG_HAVE_MEMORYLESS_NODES is set. This is only the case for ia64
> currently, but clearly we can have memoryless nodes on ppc64. Add the
> Kconfig option and define it to be the same value as CONFIG_NUMA.
> 
> On the LPAR in question, which was very inefficiently using slabs, this
> took the slab consumption at boot from roughly 7GB to roughly 4GB.

Err, this should have been

Signed-off-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>

!

Sorry about that Ben!
    
> ---
> Ben, the only question I have wrt this change is if it's appropriate to
> change it for all powerpc configs (that have NUMA on)?
> 
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 25493a0..bb2d5fe 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -447,6 +447,9 @@ config NODES_SHIFT
>  	default "4"
>  	depends on NEED_MULTIPLE_NODES
>  
> +config HAVE_MEMORYLESS_NODES
> +	def_bool NUMA
> +
>  config ARCH_SELECT_MEMORY_MODEL
>  	def_bool y
>  	depends on PPC64
David Rientjes Feb. 13, 2014, 10:45 p.m. UTC | #3
On Thu, 13 Feb 2014, Nishanth Aravamudan wrote:

> > Anton Blanchard found an issue with an LPAR that had no memory in Node
> > 0. Christoph Lameter recommended, as one possible solution, to use
> > numa_mem_id() for locality of the nearest memory node-wise. However,
> > numa_mem_id() [and the other related APIs] are only useful if
> > CONFIG_HAVE_MEMORYLESS_NODES is set. This is only the case for ia64
> > currently, but clearly we can have memoryless nodes on ppc64. Add the
> > Kconfig option and define it to be the same value as CONFIG_NUMA.
> > 
> > On the LPAR in question, which was very inefficiently using slabs, this
> > took the slab consumption at boot from roughly 7GB to roughly 4GB.
> 
> Err, this should have been
> 
> Signed-off-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
> 
> !
> 
> Sorry about that Ben!
>     
> > ---
> > Ben, the only question I have wrt this change is if it's appropriate to
> > change it for all powerpc configs (that have NUMA on)?
> > 

I'm suspecting that Ben will request that the proper set_numa_mem() calls 
are done for ppc init to make this actually do anything other than return 
numa_mem_id() == numa_node_id().

> > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> > index 25493a0..bb2d5fe 100644
> > --- a/arch/powerpc/Kconfig
> > +++ b/arch/powerpc/Kconfig
> > @@ -447,6 +447,9 @@ config NODES_SHIFT
> >  	default "4"
> >  	depends on NEED_MULTIPLE_NODES
> >  
> > +config HAVE_MEMORYLESS_NODES
> > +	def_bool NUMA
> > +
> >  config ARCH_SELECT_MEMORY_MODEL
> >  	def_bool y
> >  	depends on PPC64
Nishanth Aravamudan Feb. 14, 2014, 12:11 a.m. UTC | #4
On 13.02.2014 [14:45:49 -0800], David Rientjes wrote:
> On Thu, 13 Feb 2014, Nishanth Aravamudan wrote:
> 
> > > Anton Blanchard found an issue with an LPAR that had no memory in Node
> > > 0. Christoph Lameter recommended, as one possible solution, to use
> > > numa_mem_id() for locality of the nearest memory node-wise. However,
> > > numa_mem_id() [and the other related APIs] are only useful if
> > > CONFIG_HAVE_MEMORYLESS_NODES is set. This is only the case for ia64
> > > currently, but clearly we can have memoryless nodes on ppc64. Add the
> > > Kconfig option and define it to be the same value as CONFIG_NUMA.
> > > 
> > > On the LPAR in question, which was very inefficiently using slabs, this
> > > took the slab consumption at boot from roughly 7GB to roughly 4GB.
> > 
> > Err, this should have been
> > 
> > Signed-off-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
> > 
> > !
> > 
> > Sorry about that Ben!
> >     
> > > ---
> > > Ben, the only question I have wrt this change is if it's appropriate to
> > > change it for all powerpc configs (that have NUMA on)?
> > > 
> 
> I'm suspecting that Ben will request that the proper set_numa_mem() calls 
> are done for ppc init to make this actually do anything other than return 
> numa_mem_id() == numa_node_id().

You're right, thanks for pointing this out. I could have sworn that in
my previous debugging I saw proper NUMA information, but perhaps it was
just correct based upon the system configuration.

> > > diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> > > index 25493a0..bb2d5fe 100644
> > > --- a/arch/powerpc/Kconfig
> > > +++ b/arch/powerpc/Kconfig
> > > @@ -447,6 +447,9 @@ config NODES_SHIFT
> > >  	default "4"
> > >  	depends on NEED_MULTIPLE_NODES
> > >  
> > > +config HAVE_MEMORYLESS_NODES
> > > +	def_bool NUMA
> > > +
> > >  config ARCH_SELECT_MEMORY_MODEL
> > >  	def_bool y
> > >  	depends on PPC64
>
diff mbox

Patch

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 25493a0..bb2d5fe 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -447,6 +447,9 @@  config NODES_SHIFT
 	default "4"
 	depends on NEED_MULTIPLE_NODES
 
+config HAVE_MEMORYLESS_NODES
+	def_bool NUMA
+
 config ARCH_SELECT_MEMORY_MODEL
 	def_bool y
 	depends on PPC64