The kmem allocator is modelled after an interface of similar name implemented 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) internally to speed-up common (small) sized allocations.
It requires no setup, but cannot be used from interrupt context.
See
kmem(9) for more details.