Re: API changes to the slab allocator for NUMA memory allocation

From: Manfred Spraul
Date: Wed Mar 30 2005 - 01:44:12 EST


Christoph Lameter wrote:

The patch makes the following function calls available to allocate memory on
a specific node without changing the basic operation of the slab
allocator:

kmem_cache_alloc_node(kmem_cache_t *cachep, unsigned int flags, int node);
kmalloc_node(size_t size, unsigned int flags, int node);



I intentionally didn't add a kmalloc_node() function:
kmalloc is just a wrapper around kmem_find_general_cachep+kmem_cache_alloc. It exists only for efficiency. The _node functions are slow, thus a wrapper is IMHO not required. kmalloc_node(size,flags,node) is identical to kmem_cache_alloc(kmem_find_general_cachep(size,flags),flags,node). What about making kmem_find_general_cachep() public again and removing kmalloc_node()?

And I don't know if it's a good idea to make kmalloc() a special case of kmalloc_node(): It adds one parameter to every kmalloc call and kmem_cache_alloc call, virtually everyone passes -1. Does it increase the .text size?

--
Manfred
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/