Re: [patch 3/9] mempool - Make mempools NUMA aware

Christoph Lameter
2006-01-26T23:29:55Z

On Thu, 26 Jan 2006, Matthew Dobson wrote:

> alloc_pages_node() does not guarantee allocation on a specific node, but
> calling __alloc_pages() with a specific nodelist would.

True but you have emergency *_node function that do not take nodelists.

> > There is no way that you would need this patch.
>
> My goal was to not change the behavior of the slab allocator when inserting
> a mempool-backed allocator "under" it. Without support for at least
> *requesting* allocations from a specific node when allocating from a
> mempool, this would change how the slab allocator works. That would be
> bad. The slab allocator now does not guarantee that, for example, a
> kmalloc_node() request is satisfied by memory from the requested node, but
> it does at least TRY. Without adding mempool_alloc_node() then I would
> never be able to even TRY to satisfy a mempool-backed kmalloc_node()
> request from the correct node. I believe that would constitute an
> unacceptable breakage from normal, documented behavior. So, I *do* need
> this patch.

If you get to the emergency lists then you are already in a tight memory
situation. In that situation it does not make sense to worry about the
node number the memory is coming from. kmalloc_node is just a kmalloc with
an indication of a preference of where the memory should be coming from.
The node locality only influences performance and not correctness.

There is no change to the way the slab allocator works. Just drop the
*_node variants.