[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Differences between SLUB/SLAB/SLOB/SLQB
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
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ