netbsd man page for memoryallocators

Query: memoryallocators

OS: netbsd

Section: 9

Links: netbsd man pages   all man pages

Forums: unix linux community   forum categories

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

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

NAME
memoryallocators -- introduction to kernel memory allocators
DESCRIPTION
The NetBSD kernel provides several memory allocators, each with different characteristics and purpose. This document summarizes the main differences between them. The Kmem Allocator The kmem allocator is modelled after an interface of similar name implemented in Solaris. This is main general purpose allocator in the ker- nel. 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 setup (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- safe. 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.
SEE ALSO
intro(9), kmem(9), pool(9), pool_cache(9), uvm(9), vmem(9)
AUTHORS
Elad Efrat <elad@NetBSD.org> YAMAMOTO Takashi <yamt@NetBSD.org>
BSD
August 3, 2009 BSD
Related Man Pages
pool_cache_init(9) - netbsd
pool_cache(9) - netbsd
pool_cache_destruct_object(9) - netbsd
pool_cache_put(9) - netbsd
pool_cache_sethiwat(9) - netbsd
Similar Topics in the Unix Linux Community
Tournament Pool and Bracket Tracker 0.5.1 (Default branch)
The Hoard Scalable Memory Allocator 3.7.1 (Default branch)
Zfs::zpool.cache file