Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

If not, what do they use. Please provide a source.

share|improve this question
up vote 5 down vote accepted

Some of the OpenSolaris 10 source code is publicly available, and yes, kmem uses a slab allocator in that release. See kmem.c, the comments describe the allocator in some detail.

(Illumos uses the same allocator.)

Looking at the Debugging With the Kernel Memory Allocator pages from the Oracle Solaris Modular Debugger Guide for Solaris 11 (Express), there is no reason to believe that the allocator changed substantially in that release.

share|improve this answer
A small error, there has never been an "OpenSolaris 10" release, only OpenSolaris 2008.05, 2008.11, 2009.06 and 134b. The SunOS 5.11 evolving kernel source code, including kmem.c was released from june 2005 to august 2010. – jlliagre Jul 12 '12 at 6:40

Solaris 10 and older definitely use the SLAB allocator.

OpenSolaris releases, OpenIndiana/SmartOS/etc Illumos based Oses and (current) Solaris 11, i.e. SunOS 5.11 based OSes are still using it.

VM2, an unreleased project, might eventually replace it in a future Solaris 11 version (or not).

Should you want to check is slab is still used in your Solaris release, you can use this command:

echo ::kmem-slabs | mdb -k
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.