Subject: Re: [PATCH] powerpc: enable CONFIG_HAVE_MEMORYLESS_NODES

From: Nishanth Aravamudan <[email-masked]>
Date: Thu, 13 Feb 2014 16:11:56 -0800

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 <[email-masked]>
> > 
> > !
> > 
> > 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
>