Re: [patch 2/2] enables booting a NUMA system where some nodes have no memory

Arnd Bergmann
2006-11-16T13:08:37Z

On Thursday 16 November 2006 01:45, Christoph Lameter wrote:
> On Thu, 16 Nov 2006, Arnd Bergmann wrote:
>
> > - we want to be able to boot with the 'mem=512M' option, which effectively
> >   disables the memory on the second node (each node has 512MiB).
> > - Each node has 8 SPUs, all of which we want to use. In order to use an
> >   SPU, we call __add_pages to register the local memory on it, so we have
> >   struct page pointers we can hand out to user mappings with ->nopage().
>
> This is more like the bringup of a processor right? You need
> to have the memory online before the processor is brought up otherwise
> the slab cannot properly allocate its structures on the node when the
> per node portion is brought up. The page allocator has similar issues.

No, that's not really the issue here. The memory we're trying to add to the
mem_map can not be used for kernel allocations at all and is never entered
into the buddy allocator. It can only be used for applications running on
an SPU itself.

So the problem is not the order in which we do things, but the fact that
node data structure has not been initialized, and never will be, when
we add the SPU to the node.