[Hotplug_sig] Re: 2.6.11-mhp1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2005-03-04 at 08:24 -0500, Bob Picco wrote: 
> There are two issues here.  First, I was remiss by not replying
> to you about an old IA64 SPARSEMEM patch.  Both issues are are within 
> alloc_node_mem_map.  
> 
> For SPARSEMEM why would any arch use node_mem_map?

They shouldn't.  We might want to ifdef it out.

> Should what I propose be
> unacceptable, then I'd be left with loading node_mem_map with a non-zero
> value (like any) for each node to avoid the alloc_bootmem_node. Well I might
> be missing the bigger picture.

The big picture is that you don't want this:

>         size = (pgdat->node_spanned_pages + 1) * sizeof(struct page);
>         map = alloc_remap(pgdat->node_id, size);
>         if (!map)
>                 map = alloc_bootmem_node(pgdat, size);
>         pgdat->node_mem_map = map;

for your architecture.  I think it's reasonable to have a
per-architecture alloc routine there.  The i386 NUMA architectures can
hook in the alloc_remap(), ia64 can hook in setting up their
node_mem_map init, and everybody else can just call alloc_bootmem_node.

map = arch_alloc_node_mem_map(pgdat, size);

...

#ifndef CONFIG_ARCH_HAS_ALLOC_NODE_MEM_MAP
#define arch_alloc_node_mem_map(pgdat,size)\
	alloc_bootmem_node(pgdat, size);
#endif

-- Dave


[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux