Check out my first novel, midnight's simulacra!

Allocators: Difference between revisions

From dankwiki
Line 8: Line 8:


===Linux kernel variants===
===Linux kernel variants===
* SLAB: The original. From the Kconfig help:<pre>The regular slab allocator that is established and known to work well in all environments. It organizes cache hot objects in per cpu and per node queues.</pre>
The following data is collected from kernel 2.6.30:
* [http://lwn.net/Articles/229984/ SLUB] (Christoph Lameter, 2007) reduced the size of the slab object queue and improved scalability for many processors ([http://article.gmane.org/gmane.linux.kernel/510692 LKML]). From the Kconfig help:<code>SLUB is a slab allocator that minimizes cache line usage instead of managing queues of cached objects (SLAB approach). Per cpu caching is realized using slabs of objects instead of queues of objects. SLUB can use memory efficiently and has enhanced diagnostics. SLUB is the default choice for a slab allocator.</code>
* SLAB: The original. From the Kconfig help:<pre>The regular slab allocator that is established and known to work
well in all environments. It organizes cache hot objects in
per cpu and per node queues.</pre>
* [http://lwn.net/Articles/229984/ SLUB] (Christoph Lameter, 2007) reduced the size of the slab object queue and improved scalability for many processors ([http://article.gmane.org/gmane.linux.kernel/510692 LKML]). From the Kconfig help:<pre>SLUB is a slab allocator that minimizes cache line usage
instead of managing queues of cached objects (SLAB approach).
Per cpu caching is realized using slabs of objects instead
of queues of objects. SLUB can use memory efficiently
and has enhanced diagnostics. SLUB is the default choice for
a slab allocator.</pre>
* [http://lwn.net/Articles/311502/ SLQB] (Nick Piggin, 2008)
* [http://lwn.net/Articles/311502/ SLQB] (Nick Piggin, 2008)
* SLOB ([http://article.gmane.org/gmane.linux.kernel/344062 LKML])
* SLOB ([http://article.gmane.org/gmane.linux.kernel/344062 LKML])
* [http://www.nabble.com/Differences-between-SLUB-SLAB-SLOB-SLQB-td22818541.html Differences] between SL*Bs
* [http://www.nabble.com/Differences-between-SLUB-SLAB-SLOB-SLQB-td22818541.html Differences] between SL*Bs

Revision as of 03:33, 19 June 2009

Arena

Slab

Linux kernel variants

The following data is collected from kernel 2.6.30:

  • SLAB: The original. From the Kconfig help:
    The regular slab allocator that is established and known to work

well in all environments. It organizes cache hot objects in

per cpu and per node queues.

  • SLUB (Christoph Lameter, 2007) reduced the size of the slab object queue and improved scalability for many processors (LKML). From the Kconfig help:
    SLUB is a slab allocator that minimizes cache line usage

instead of managing queues of cached objects (SLAB approach). Per cpu caching is realized using slabs of objects instead of queues of objects. SLUB can use memory efficiently and has enhanced diagnostics. SLUB is the default choice for

a slab allocator.