[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4603047C.4070904@cosmosbay.com>
Date: Thu, 22 Mar 2007 23:34:36 +0100
From: Eric Dumazet <dada1@...mosbay.com>
To: akpm@...l.org
CC: Pekka J Enberg <penberg@...helsinki.fi>,
linux-kernel@...r.kernel.org, apw@...dowen.org, hch@....de,
manfred@...orfullife.com, christoph@...eter.com, pj@....com
Subject: [PATCH] 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@...mosbay.com>
View attachment "kmem_cache_diet.patch" of type "text/plain" (1773 bytes)
Powered by blists - more mailing lists