lkml.org 
[lkml]   [2006]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Linux SLAB allocator issue
Thanks for your kind reply.

I did the following experiment.

I create my own cache with kmem_cache_create() and specify the
constructor to be init_once()-- a simple constructor like NFS does.

I checked the cache parameter and find that each slab has 1 page and
can hold 10 objects.

Then, I used kmem_cache_alloc() to allocate 128 objects. So it should
occupy 12 full slabs and 1 partial slab. Right?

But when I walk through the slabs_full and slabs_partial list, I found
that slabs_full returned 13 slabs but slabs_partial returned 0.

That's why I am confused. I am using 2.6.16 BTW.

Any further insight?

Thanks,
Xin

On 6/7/06, Pekka Enberg <penberg@cs.helsinki.fi> wrote:
> On 6/6/06, Xin Zhao <uszhaoxin@gmail.com> 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@gmail.com> 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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-06-07 17:39    [W:0.034 / U:0.000 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site