Differences between SLUB/SLAB/SLOB/SLQB

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux