Check out the new USENIX Web site.

The Slab Allocator:
An Object-Caching Kernel Memory Allocator

Jeff Bonwick
Sun Microsystems


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.