MEMORYALLOCATORS(9)    NetBSD Kernel Developer's Manual    MEMORYALLOCATORS(9)

     memoryallocators -- introduction to kernel memory allocators

     The NetBSD kernel provides several memory allocators, each with different
     characteristics and purpose.  This document summarizes the main differ-
     ences between them.

   The Kmem Allocator
     The kmem allocator is modelled after an interface of similar name imple-
     mented in Solaris.  This is main general purpose allocator in the kernel.

     It is implemented on-top of the vmem(9) resource allocator (beyond the
     scope of this document), meaning it will be using pool_cache(9) inter-
     nally to speed-up common (small) sized allocations.

     It requires no setup, but cannot be used from interrupt context.

     See kmem(9) for more details.

   The Pool Allocator
     The pool(9) allocator is a fixed-size memory allocator.  It requires set-
     up (to initialize a memory pool) and is interrupt-safe.

     See pool(9) for more details.

   The Pool Cache Allocator
     The pool cache allocator works on-top of the pool(9) allocator, also
     allowing fixed-size allocation only, requires setup, and is interrupt-

     The pool cache allocator is expected to be faster than other allocators,
     including the ``normal'' pool allocator.

     In the future this allocator is expected to have a per-CPU cache.

     See pool_cache(9) for more details.

   The UVM Kernel Memory Allocator
     This is a low-level memory allocator interface.  It allows variable-sized
     allocations in multiples of PAGE_SIZE, and can be used to allocate both
     wired and pageable kernel memory.

     See uvm(9) for more details.

     intro(9), kmem(9), pool(9), pool_cache(9), uvm(9), vmem(9)

     Elad Efrat <>
     YAMAMOTO Takashi <>

NetBSD 7.1                      August 3, 2009                      NetBSD 7.1

You can also request any man page by name and (optionally) by section:


Use the DEFAULT collection to view manual pages for third-party software.

©1994 Man-cgi 1.15, Panagiotis Christias
©1996-2017 Modified for NetBSD by Kimmo Suominen