based on http://lwn.net/Articles/229984/, which explained the differences in some ways, my understanding is that SLUB is targetting for large number of CPUs/nodes. For machines like 2 or 4 cores, it should not matters much, correct? (or possibly higher overheads in some scenario?) On Wed, Apr 1, 2009 at 10:08 AM, Peter Teoh <htmldeveloper@xxxxxxxxx> wrote: > What is the concept behind SLAB? From: > > http://scriptmatrix.net/cs2106/wiki/index.php/Slab_Allocator > > I understood it as a caching subsystem maintaining pool of caches for > quick availabilities. > > So what are the difference between SLUB/SLAB/SLOB/SLQB? > > (hopefully....one or two sentence to summarize the concept will > do) > > (as explained in mm/slub.c:1 comment: > > /* > * SLUB: A slab allocator that limits cache line use instead of queuing > * objects in per cpu and per node lists. > * > * The allocator synchronizes using per slab locks and only > * uses a centralized lock to manage a pool of partial slabs. > * > * (C) 2007 SGI, Christoph Lameter > */ > ) SLUB is based on SLAB.....in what sense? > > The key exported API in SLUB and SLAB hardly changed: > > EXPORT_SYMBOL(kmem_cache_alloc); > EXPORT_SYMBOL(kmem_cache_alloc_node); > EXPORT_SYMBOL(kmem_cache_free); > EXPORT_SYMBOL(kmem_ptr_validate); > EXPORT_SYMBOL(kmem_cache_size); > EXPORT_SYMBOL(kmem_cache_name); > EXPORT_SYMBOL(kmem_cache_destroy); > EXPORT_SYMBOL(kmalloc_caches); > EXPORT_SYMBOL(__kmalloc); > EXPORT_SYMBOL(__kmalloc_node); > EXPORT_SYMBOL(ksize); > EXPORT_SYMBOL(kfree); > EXPORT_SYMBOL(kmem_cache_shrink); > EXPORT_SYMBOL(kmem_cache_create); > > but internally.....what are the differences? (conceptually) > > > -- > Regards, > Peter Teoh > -- Regards, Peter Teoh -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ