Eric Dumazet 8da3430d8a slab: NUMA kmem_cache diet
Some NUMA machines have a big MAX_NUMNODES (possibly 1024), but fewer
possible nodes.  This patch dynamically sizes the 'struct kmem_cache' to
allocate only needed space.

I moved nodelists[] field at the end of struct kmem_cache, and use the
following computation in kmem_cache_init()

cache_cache.buffer_size = offsetof(struct kmem_cache, nodelists) +
                                 nr_node_ids * sizeof(struct kmem_list3 *);

On my two nodes x86_64 machine, kmem_cache.obj_size is now 192 instead of 704
(This is because on x86_64, MAX_NUMNODES is 64)

On bigger NUMA setups, this might reduce the gfporder of "cache_cache"

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Cc: Andy Whitcroft <apw@shadowen.org>
Cc: Christoph Lameter <clameter@engr.sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-07 12:12:53 -07:00
..
2007-03-27 08:52:47 +02:00
2007-05-07 12:12:52 -07:00
2006-12-22 08:55:49 -08:00
2006-09-26 08:48:44 -07:00
2007-01-11 18:18:20 -08:00
2007-02-15 09:57:03 -08:00
2006-12-07 08:39:22 -08:00
2006-09-26 08:48:45 -07:00
2007-05-07 12:12:51 -07:00
2005-04-16 15:20:36 -07:00
2007-05-07 12:12:52 -07:00
2007-04-27 16:01:46 +02:00
2007-05-07 12:12:53 -07:00
2007-05-07 12:12:50 -07:00