Re: Linux SLAB allocator issue

From: Pekka Enberg
Date: Wed Jun 07 2006 - 08:15:57 EST


On 6/6/06, Xin Zhao <uszhaoxin@xxxxxxxxx> wrote:
I am trying to check how many slabs are used for inode_cache, but
found that all slabs are added to slabs_full list, and slabs_partial
is always empty. Even if the active object number does not exactly
occupy all slabs.

Does that mean Linux 2.6 remove the use of slabs_partial?

No. If slabs_partial is really empty, the number of active objects
should match the number of objects in a slab; otherwise you should see
an error message when you do cat /proc/slabinfo (see s_show in
mm/slab.c for details).

How are you verifying that the partial list is empty?

On 6/6/06, Xin Zhao <uszhaoxin@xxxxxxxxx> wrote:
Another question, the constructor transfered to the
kmem_cache_create() function is called for every object in a slab when
it is created. Is this true? Is there any way to call back a function
_only once_ when a new slab is allocated?

We don't have per-slab constructors. Only per-object. What do you need it for?

Pekka
-
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/