The Slab Allocator:
An Object-Caching Kernel Memory Allocator
Jeff Bonwick
Sun Microsystems
Abstract
This paper presents a comprehensive design overview of the SunOS 5.4
kernel memory allocator. This allocator is based on a set of
object-caching primi- tives that reduce the cost of allocating complex
objects by retaining their state between uses. These same primitives
prove equally effective for manag- ing stateless memory (e.g. data
pages and temporary buffers) because they are space-efficient and
fast. The allocator's object caches respond dynamically to global
memory pressure, and employ an object-coloring scheme that improves
the system's overall cache utilization and bus balance. The allocator
also has several statistical and debugging features that can detect a
wide range of problems throughout the system.
Download the full text of this paper in
ASCII (52,487 bytes) and
POSTSCRIPT (101,520 bytes) form.
To Become a USENIX Member, please see our
Membership Information.