FreeBSD virtual memory subsystem code
uma.h File Reference
#include <sys/param.h>
#include <sys/malloc.h>
#include <sys/_smr.h>
Include dependency graph for uma.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  uma_stream_header
 
struct  uma_type_header
 
struct  uma_percpu_stat
 

Macros

#define UMA_SMALLEST_UNIT   8 /* Smallest item allocated */
 
#define UMA_ZONE_UNMANAGED
 
#define UMA_ZONE_ZINIT   0x0002 /* Initialize with zeros */
 
#define UMA_ZONE_CONTIG
 
#define UMA_ZONE_NOTOUCH   0x0008 /* UMA may not access the memory */
 
#define UMA_ZONE_MALLOC   0x0010 /* For use by malloc(9) only! */
 
#define UMA_ZONE_NOFREE   0x0020 /* Do not free slabs of this type! */
 
#define UMA_ZONE_MTXCLASS   0x0040 /* Create a new lock class */
 
#define UMA_ZONE_VM
 
#define UMA_ZONE_NOTPAGE   0x0100 /* allocf memory not vm pages */
 
#define UMA_ZONE_SECONDARY   0x0200 /* Zone is a Secondary Zone */
 
#define UMA_ZONE_NOBUCKET   0x0400 /* Do not use buckets. */
 
#define UMA_ZONE_MAXBUCKET   0x0800 /* Use largest buckets. */
 
#define UMA_ZONE_CACHESPREAD
 
#define UMA_ZONE_NODUMP
 
#define UMA_ZONE_PCPU
 
#define UMA_ZONE_FIRSTTOUCH   0x10000 /* First touch NUMA policy */
 
#define UMA_ZONE_ROUNDROBIN   0x20000 /* Round-robin NUMA policy. */
 
#define UMA_ZONE_SMR
 
#define UMA_ZONE_NOKASAN
 
#define UMA_ZONE_INHERIT
 
#define UMA_ALIGN_PTR   (sizeof(void *) - 1) /* Alignment fit for ptr */
 
#define UMA_ALIGN_LONG   (sizeof(long) - 1) /* "" long */
 
#define UMA_ALIGN_INT   (sizeof(int) - 1) /* "" int */
 
#define UMA_ALIGN_SHORT   (sizeof(short) - 1) /* "" short */
 
#define UMA_ALIGN_CHAR   (sizeof(char) - 1) /* "" char */
 
#define UMA_ALIGN_CACHE   (0 - 1) /* Cache line size align */
 
#define UMA_ALIGNOF(type)   (_Alignof(type) - 1) /* Alignment fit for 'type' */
 
#define UMA_ANYDOMAIN   -1 /* Special value for domain search. */
 
#define UMA_RECLAIM_DRAIN   1 /* release bucket cache */
 
#define UMA_RECLAIM_DRAIN_CPU   2 /* release bucket and per-CPU caches */
 
#define UMA_RECLAIM_TRIM   3 /* trim bucket cache to WSS */
 
#define UMA_SLAB_BOOT   0x01 /* Slab alloced from boot pages */
 
#define UMA_SLAB_KERNEL   0x04 /* Slab alloced from kmem */
 
#define UMA_SLAB_PRIV   0x08 /* Slab alloced from priv allocator */
 
#define UMA_STREAM_VERSION   0x00000001
 
#define UTH_MAX_NAME   32
 
#define UTH_ZONE_SECONDARY   0x00000001
 

Typedefs

typedef struct uma_zoneuma_zone_t
 
typedef int(* uma_ctor) (void *mem, int size, void *arg, int flags)
 
typedef void(* uma_dtor) (void *mem, int size, void *arg)
 
typedef int(* uma_init) (void *mem, int size, int flags)
 
typedef void(* uma_fini) (void *mem, int size)
 
typedef int(* uma_import) (void *arg, void **store, int count, int domain, int flags)
 
typedef void(* uma_release) (void *arg, void **store, int count)
 
typedef void *(* uma_alloc) (uma_zone_t zone, vm_size_t size, int domain, uint8_t *pflag, int wait)
 
typedef void(* uma_free) (void *item, vm_size_t size, uint8_t pflag)
 
typedef void(* uma_maxaction_t) (uma_zone_t, int)
 

Functions

uma_zone_t uma_zcreate (const char *name, size_t size, uma_ctor ctor, uma_dtor dtor, uma_init uminit, uma_fini fini, int align, uint32_t flags)
 
uma_zone_t uma_zsecond_create (const char *name, uma_ctor ctor, uma_dtor dtor, uma_init zinit, uma_fini zfini, uma_zone_t primary)
 
uma_zone_t uma_zcache_create (const char *name, int size, uma_ctor ctor, uma_dtor dtor, uma_init zinit, uma_fini zfini, uma_import zimport, uma_release zrelease, void *arg, int flags)
 
void uma_zdestroy (uma_zone_t zone)
 
void * uma_zalloc_arg (uma_zone_t zone, void *arg, int flags)
 
void * uma_zalloc_pcpu_arg (uma_zone_t zone, void *arg, int flags)
 
void * uma_zalloc_smr (uma_zone_t zone, int flags)
 
void * uma_zalloc_domain (uma_zone_t zone, void *arg, int domain, int flags)
 
static __inline void * uma_zalloc (uma_zone_t zone, int flags)
 
static __inline void * uma_zalloc_pcpu (uma_zone_t zone, int flags)
 
void uma_zfree_arg (uma_zone_t zone, void *item, void *arg)
 
void uma_zfree_pcpu_arg (uma_zone_t zone, void *item, void *arg)
 
void uma_zfree_smr (uma_zone_t zone, void *item)
 
static __inline void uma_zfree (uma_zone_t zone, void *item)
 
static __inline void uma_zfree_pcpu (uma_zone_t zone, void *item)
 
void uma_zwait (uma_zone_t zone)
 
void uma_reclaim (int req)
 
void uma_reclaim_domain (int req, int domain)
 
void uma_zone_reclaim (uma_zone_t, int req)
 
void uma_zone_reclaim_domain (uma_zone_t, int req, int domain)
 
void uma_set_align (int align)
 
void uma_zone_reserve (uma_zone_t zone, int nitems)
 
int uma_zone_reserve_kva (uma_zone_t zone, int nitems)
 
int uma_zone_set_max (uma_zone_t zone, int nitems)
 
void uma_zone_set_maxcache (uma_zone_t zone, int nitems)
 
int uma_zone_get_max (uma_zone_t zone)
 
void uma_zone_set_warning (uma_zone_t zone, const char *warning)
 
void uma_zone_set_maxaction (uma_zone_t zone, uma_maxaction_t)
 
int uma_zone_get_cur (uma_zone_t zone)
 
void uma_zone_set_init (uma_zone_t zone, uma_init uminit)
 
void uma_zone_set_fini (uma_zone_t zone, uma_fini fini)
 
void uma_zone_set_zinit (uma_zone_t zone, uma_init zinit)
 
void uma_zone_set_zfini (uma_zone_t zone, uma_fini zfini)
 
void uma_zone_set_allocf (uma_zone_t zone, uma_alloc allocf)
 
void uma_zone_set_freef (uma_zone_t zone, uma_free freef)
 
void uma_zone_set_smr (uma_zone_t zone, smr_t smr)
 
smr_t uma_zone_get_smr (uma_zone_t zone)
 
void uma_prealloc (uma_zone_t zone, int itemcnt)
 
int uma_zone_exhausted (uma_zone_t zone)
 
size_t uma_zone_memory (uma_zone_t zone)
 
void uma_reclaim_wakeup (void)
 
void uma_reclaim_worker (void *)
 
unsigned long uma_limit (void)
 
unsigned long uma_size (void)
 
long uma_avail (void)
 

Variables

uma_zone_t pcpu_zone_4
 
uma_zone_t pcpu_zone_8
 
uma_zone_t pcpu_zone_16
 
uma_zone_t pcpu_zone_32
 
uma_zone_t pcpu_zone_64
 

Macro Definition Documentation

◆ UMA_ALIGN_CACHE

#define UMA_ALIGN_CACHE   (0 - 1) /* Cache line size align */

Definition at line 273 of file uma.h.

◆ UMA_ALIGN_CHAR

#define UMA_ALIGN_CHAR   (sizeof(char) - 1) /* "" char */

Definition at line 272 of file uma.h.

◆ UMA_ALIGN_INT

#define UMA_ALIGN_INT   (sizeof(int) - 1) /* "" int */

Definition at line 270 of file uma.h.

◆ UMA_ALIGN_LONG

#define UMA_ALIGN_LONG   (sizeof(long) - 1) /* "" long */

Definition at line 269 of file uma.h.

◆ UMA_ALIGN_PTR

#define UMA_ALIGN_PTR   (sizeof(void *) - 1) /* Alignment fit for ptr */

Definition at line 268 of file uma.h.

◆ UMA_ALIGN_SHORT

#define UMA_ALIGN_SHORT   (sizeof(short) - 1) /* "" short */

Definition at line 271 of file uma.h.

◆ UMA_ALIGNOF

#define UMA_ALIGNOF (   type)    (_Alignof(type) - 1) /* Alignment fit for 'type' */

Definition at line 274 of file uma.h.

◆ UMA_ANYDOMAIN

#define UMA_ANYDOMAIN   -1 /* Special value for domain search. */

Definition at line 276 of file uma.h.

◆ UMA_RECLAIM_DRAIN

#define UMA_RECLAIM_DRAIN   1 /* release bucket cache */

Definition at line 429 of file uma.h.

◆ UMA_RECLAIM_DRAIN_CPU

#define UMA_RECLAIM_DRAIN_CPU   2 /* release bucket and per-CPU caches */

Definition at line 430 of file uma.h.

◆ UMA_RECLAIM_TRIM

#define UMA_RECLAIM_TRIM   3 /* trim bucket cache to WSS */

Definition at line 431 of file uma.h.

◆ UMA_SLAB_BOOT

#define UMA_SLAB_BOOT   0x01 /* Slab alloced from boot pages */

Definition at line 611 of file uma.h.

◆ UMA_SLAB_KERNEL

#define UMA_SLAB_KERNEL   0x04 /* Slab alloced from kmem */

Definition at line 612 of file uma.h.

◆ UMA_SLAB_PRIV

#define UMA_SLAB_PRIV   0x08 /* Slab alloced from priv allocator */

Definition at line 613 of file uma.h.

◆ UMA_SMALLEST_UNIT

#define UMA_SMALLEST_UNIT   8 /* Smallest item allocated */

Definition at line 46 of file uma.h.

◆ UMA_STREAM_VERSION

#define UMA_STREAM_VERSION   0x00000001

Definition at line 660 of file uma.h.

◆ UMA_ZONE_CACHESPREAD

#define UMA_ZONE_CACHESPREAD
Value:
0x2000 /*
* Spread memory start locations across
* all possible cache lines. May
* require many virtually contiguous
* backend pages and can fail early.
*/

Definition at line 248 of file uma.h.

◆ UMA_ZONE_CONTIG

#define UMA_ZONE_CONTIG
Value:
0x0004 /*
* Physical memory underlying an object
* must be contiguous.
*/

Definition at line 238 of file uma.h.

◆ UMA_ZONE_FIRSTTOUCH

#define UMA_ZONE_FIRSTTOUCH   0x10000 /* First touch NUMA policy */

Definition at line 251 of file uma.h.

◆ UMA_ZONE_INHERIT

#define UMA_ZONE_INHERIT
Value:
UMA_ZONE_VM | UMA_ZONE_NOTPAGE | UMA_ZONE_PCPU | \
UMA_ZONE_FIRSTTOUCH | UMA_ZONE_ROUNDROBIN | UMA_ZONE_NOKASAN)
#define UMA_ZONE_PCPU
Definition: uma.h:250
#define UMA_ZONE_ROUNDROBIN
Definition: uma.h:252
#define UMA_ZONE_NOTPAGE
Definition: uma.h:244
#define UMA_ZONE_NOTOUCH
Definition: uma.h:239
#define UMA_ZONE_NOKASAN
Definition: uma.h:254
#define UMA_ZONE_NOFREE
Definition: uma.h:241
#define UMA_ZONE_MALLOC
Definition: uma.h:240

Definition at line 262 of file uma.h.

◆ UMA_ZONE_MALLOC

#define UMA_ZONE_MALLOC   0x0010 /* For use by malloc(9) only! */

Definition at line 240 of file uma.h.

◆ UMA_ZONE_MAXBUCKET

#define UMA_ZONE_MAXBUCKET   0x0800 /* Use largest buckets. */

Definition at line 247 of file uma.h.

◆ UMA_ZONE_MTXCLASS

#define UMA_ZONE_MTXCLASS   0x0040 /* Create a new lock class */

Definition at line 242 of file uma.h.

◆ UMA_ZONE_NOBUCKET

#define UMA_ZONE_NOBUCKET   0x0400 /* Do not use buckets. */

Definition at line 246 of file uma.h.

◆ UMA_ZONE_NODUMP

#define UMA_ZONE_NODUMP
Value:
0x4000 /*
* Zone's pages will not be included in
* mini-dumps.
*/

Definition at line 249 of file uma.h.

◆ UMA_ZONE_NOFREE

#define UMA_ZONE_NOFREE   0x0020 /* Do not free slabs of this type! */

Definition at line 241 of file uma.h.

◆ UMA_ZONE_NOKASAN

#define UMA_ZONE_NOKASAN
Value:
0x80000 /*
* Disable KASAN verification. This is
* implied by NOFREE. Cache zones are
* not verified by default.
*/

Definition at line 254 of file uma.h.

◆ UMA_ZONE_NOTOUCH

#define UMA_ZONE_NOTOUCH   0x0008 /* UMA may not access the memory */

Definition at line 239 of file uma.h.

◆ UMA_ZONE_NOTPAGE

#define UMA_ZONE_NOTPAGE   0x0100 /* allocf memory not vm pages */

Definition at line 244 of file uma.h.

◆ UMA_ZONE_PCPU

#define UMA_ZONE_PCPU
Value:
0x8000 /*
* Allocates mp_maxid + 1 slabs of
* PAGE_SIZE
*/

Definition at line 250 of file uma.h.

◆ UMA_ZONE_ROUNDROBIN

#define UMA_ZONE_ROUNDROBIN   0x20000 /* Round-robin NUMA policy. */

Definition at line 252 of file uma.h.

◆ UMA_ZONE_SECONDARY

#define UMA_ZONE_SECONDARY   0x0200 /* Zone is a Secondary Zone */

Definition at line 245 of file uma.h.

◆ UMA_ZONE_SMR

#define UMA_ZONE_SMR
Value:
0x40000 /*
* Safe memory reclamation defers
* frees until all read sections
* have exited. This flag creates
* a unique SMR context for this
* zone. To share contexts see
* uma_zone_set_smr() below.
*
* See sys/smr.h for more details.
*/

Definition at line 253 of file uma.h.

◆ UMA_ZONE_UNMANAGED

#define UMA_ZONE_UNMANAGED
Value:
0x0001 /*
* Don't regulate the cache size, even
* under memory pressure.
*/

Definition at line 236 of file uma.h.

◆ UMA_ZONE_VM

#define UMA_ZONE_VM
Value:
0x0080 /*
* Used for internal vm datastructures
* only.
*/

Definition at line 243 of file uma.h.

◆ UMA_ZONE_ZINIT

#define UMA_ZONE_ZINIT   0x0002 /* Initialize with zeros */

Definition at line 237 of file uma.h.

◆ UTH_MAX_NAME

#define UTH_MAX_NAME   32

Definition at line 668 of file uma.h.

◆ UTH_ZONE_SECONDARY

#define UTH_ZONE_SECONDARY   0x00000001

Definition at line 669 of file uma.h.

Typedef Documentation

◆ uma_alloc

typedef void *(* uma_alloc) (uma_zone_t zone, vm_size_t size, int domain, uint8_t *pflag, int wait)

Definition at line 403 of file uma.h.

◆ uma_ctor

typedef int(* uma_ctor) (void *mem, int size, void *arg, int flags)

Definition at line 71 of file uma.h.

◆ uma_dtor

typedef void(* uma_dtor) (void *mem, int size, void *arg)

Definition at line 89 of file uma.h.

◆ uma_fini

typedef void(* uma_fini) (void *mem, int size)

Definition at line 125 of file uma.h.

◆ uma_free

typedef void(* uma_free) (void *item, vm_size_t size, uint8_t pflag)

Definition at line 417 of file uma.h.

◆ uma_import

typedef int(* uma_import) (void *arg, void **store, int count, int domain, int flags)

Definition at line 130 of file uma.h.

◆ uma_init

typedef int(* uma_init) (void *mem, int size, int flags)

Definition at line 108 of file uma.h.

◆ uma_maxaction_t

typedef void(* uma_maxaction_t) (uma_zone_t, int)

Definition at line 530 of file uma.h.

◆ uma_release

typedef void(* uma_release) (void *arg, void **store, int count)

Definition at line 136 of file uma.h.

◆ uma_zone_t

typedef struct uma_zone* uma_zone_t

Definition at line 52 of file uma.h.

Function Documentation

◆ uma_avail()

long uma_avail ( void  )

Definition at line 5332 of file uma_core.c.

References uma_kmem_limit, and uma_size().

Here is the call graph for this function:

◆ uma_limit()

unsigned long uma_limit ( void  )

Definition at line 5311 of file uma_core.c.

References uma_kmem_limit.

◆ uma_prealloc()

void uma_prealloc ( uma_zone_t  zone,
int  itemcnt 
)

Definition at line 5133 of file uma_core.c.

References keg_alloc_slab(), KEG_GET, KEG_UNLOCK, uma_keg::uk_domain, uma_keg::uk_dr, uma_keg::uk_ipers, uma_slab::us_domain, vm_domainset_iter_policy(), vm_domainset_iter_policy_ref_init(), and vm_wait_doms().

Referenced by _vm_map_unlock(), pbuf_prealloc(), pbuf_zsecond_create(), and vm_map_startup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uma_reclaim()

void uma_reclaim ( int  req)

Definition at line 5207 of file uma_core.c.

References uma_reclaim_args::req, UMA_ANYDOMAIN, and uma_reclaim_domain().

Referenced by debug_uma_reclaim(), uma_reclaim_wakeup(), uma_reclaim_worker(), and vm_pageout_lowmem().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uma_reclaim_domain()

void uma_reclaim_domain ( int  req,
int  domain 
)

◆ uma_reclaim_wakeup()

void uma_reclaim_wakeup ( void  )

Definition at line 5251 of file uma_core.c.

References uma_reclaim(), and uma_reclaim_needed.

Referenced by vm_pageout_lowmem().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uma_reclaim_worker()

void uma_reclaim_worker ( void *  )

Referenced by vm_pageout().

Here is the caller graph for this function:

◆ uma_set_align()

void uma_set_align ( int  align)

Definition at line 3242 of file uma_core.c.

References uma_kctor_args::align, UMA_ALIGN_CACHE, and uma_align_cache.

◆ uma_size()

unsigned long uma_size ( void  )

Definition at line 5325 of file uma_core.c.

References uma_kmem_total.

Referenced by uma_avail().

Here is the caller graph for this function:

◆ uma_zalloc()

◆ uma_zalloc_arg()

void * uma_zalloc_arg ( uma_zone_t  zone,
void *  arg,
int  flags 
)

Definition at line 3637 of file uma_core.c.

References cache_alloc_item(), cache_alloc_retry(), uma_zctor_args::flags, uma_cache::uc_allocbucket, uma_cache_bucket::ucb_cnt, UMA_ZONE_SMR, uma_zone::uz_cpu, uma_zone::uz_flags, and uma_zone::uz_name.

Referenced by bucket_alloc(), uma_zalloc_domain(), and uma_zalloc_pcpu_arg().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uma_zalloc_domain()

◆ uma_zalloc_pcpu()

static __inline void * uma_zalloc_pcpu ( uma_zone_t  zone,
int  flags 
)
static

Definition at line 338 of file uma.h.

Referenced by uma_zwait().

Here is the caller graph for this function:

◆ uma_zalloc_pcpu_arg()

void * uma_zalloc_pcpu_arg ( uma_zone_t  zone,
void *  arg,
int  flags 
)

Definition at line 3377 of file uma_core.c.

References uma_zctor_args::flags, uma_zalloc_arg(), UMA_ZONE_PCPU, uma_zone::uz_flags, and uma_zone::uz_size.

Here is the call graph for this function:

◆ uma_zalloc_smr()

void * uma_zalloc_smr ( uma_zone_t  zone,
int  flags 
)

Definition at line 3610 of file uma_core.c.

References cache_alloc_item(), cache_alloc_retry(), uma_zctor_args::flags, uma_cache::uc_allocbucket, uma_cache_bucket::ucb_cnt, UMA_ZONE_SMR, uma_zone::uz_cpu, uma_zone::uz_flags, and uma_zone::uz_name.

Referenced by uma_zwait(), and vm_radix_node_get().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uma_zcache_create()

uma_zone_t uma_zcache_create ( const char *  name,
int  size,
uma_ctor  ctor,
uma_dtor  dtor,
uma_init  zinit,
uma_fini  zfini,
uma_import  zimport,
uma_release  zrelease,
void *  arg,
int  flags 
)

◆ uma_zcreate()

uma_zone_t uma_zcreate ( const char *  name,
size_t  size,
uma_ctor  ctor,
uma_dtor  dtor,
uma_init  uminit,
uma_fini  fini,
int  align,
uint32_t  flags 
)

◆ uma_zdestroy()

void uma_zdestroy ( uma_zone_t  zone)

Definition at line 3349 of file uma_core.c.

References booted, SKIP_NONE, uma_zone::uz_fini, uma_zone::uz_release, zone_free_item(), zone_release(), and zones.

Here is the call graph for this function:

◆ uma_zfree()

◆ uma_zfree_arg()

◆ uma_zfree_pcpu()

static __inline void uma_zfree_pcpu ( uma_zone_t  zone,
void *  item 
)
static

Definition at line 379 of file uma.h.

Referenced by uma_zwait().

Here is the caller graph for this function:

◆ uma_zfree_pcpu_arg()

void uma_zfree_pcpu_arg ( uma_zone_t  zone,
void *  item,
void *  arg 
)

Definition at line 3404 of file uma_core.c.

References uma_zfree_arg(), UMA_ZONE_PCPU, and uma_zone::uz_flags.

Here is the call graph for this function:

◆ uma_zfree_smr()

void uma_zfree_smr ( uma_zone_t  zone,
void *  item 
)

◆ uma_zone_exhausted()

int uma_zone_exhausted ( uma_zone_t  zone)

Definition at line 5304 of file uma_core.c.

References uma_zone::uz_sleepers.

Referenced by swp_pager_meta_build().

Here is the caller graph for this function:

◆ uma_zone_get_cur()

int uma_zone_get_cur ( uma_zone_t  zone)

Definition at line 4933 of file uma_core.c.

References uma_cache::uc_allocs, uma_cache::uc_frees, uma_zone::uz_allocs, uma_zone::uz_cpu, and uma_zone::uz_frees.

Referenced by sysctl_handle_uma_zone_cur().

Here is the caller graph for this function:

◆ uma_zone_get_max()

int uma_zone_get_max ( uma_zone_t  zone)

Definition at line 4904 of file uma_core.c.

References uma_zone::uz_max_items.

Referenced by swap_pager_swap_init(), and sysctl_handle_uma_zone_max().

Here is the caller graph for this function:

◆ uma_zone_get_smr()

smr_t uma_zone_get_smr ( uma_zone_t  zone)

Definition at line 5073 of file uma_core.c.

References uma_zone::uz_smr.

Referenced by vm_radix_zinit().

Here is the caller graph for this function:

◆ uma_zone_memory()

◆ uma_zone_reclaim()

void uma_zone_reclaim ( uma_zone_t  zone,
int  req 
)

Definition at line 5278 of file uma_core.c.

References uma_reclaim_args::req, UMA_ANYDOMAIN, and uma_zone_reclaim_domain().

Here is the call graph for this function:

◆ uma_zone_reclaim_domain()

void uma_zone_reclaim_domain ( uma_zone_t  zone,
int  req,
int  domain 
)

Definition at line 5284 of file uma_core.c.

References uma_reclaim_args::domain, pcpu_cache_drain_safe(), uma_reclaim_args::req, UMA_RECLAIM_DRAIN, UMA_RECLAIM_DRAIN_CPU, UMA_RECLAIM_TRIM, and zone_reclaim().

Referenced by bucket_zone_drain(), uma_reclaim_domain(), uma_reclaim_domain_cb(), and uma_zone_reclaim().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uma_zone_reserve()

void uma_zone_reserve ( uma_zone_t  zone,
int  nitems 
)

Definition at line 5081 of file uma_core.c.

References KEG_ASSERT_COLD, KEG_GET, and uma_keg::uk_reserve.

Referenced by vm_map_startup().

Here is the caller graph for this function:

◆ uma_zone_reserve_kva()

int uma_zone_reserve_kva ( uma_zone_t  zone,
int  nitems 
)

◆ uma_zone_set_allocf()

void uma_zone_set_allocf ( uma_zone_t  zone,
uma_alloc  allocf 
)

Definition at line 5048 of file uma_core.c.

References KEG_ASSERT_COLD, KEG_GET, and uma_keg::uk_allocf.

Referenced by vm_map_startup().

Here is the caller graph for this function:

◆ uma_zone_set_fini()

void uma_zone_set_fini ( uma_zone_t  zone,
uma_fini  fini 
)

Definition at line 5008 of file uma_core.c.

References KEG_ASSERT_COLD, KEG_GET, and uma_keg::uk_fini.

◆ uma_zone_set_freef()

void uma_zone_set_freef ( uma_zone_t  zone,
uma_free  freef 
)

Definition at line 5037 of file uma_core.c.

References KEG_ASSERT_COLD, KEG_GET, and uma_keg::uk_freef.

Referenced by vm_map_startup().

Here is the caller graph for this function:

◆ uma_zone_set_init()

void uma_zone_set_init ( uma_zone_t  zone,
uma_init  uminit 
)

Definition at line 4997 of file uma_core.c.

References KEG_ASSERT_COLD, KEG_GET, and uma_keg::uk_init.

◆ uma_zone_set_max()

int uma_zone_set_max ( uma_zone_t  zone,
int  nitems 
)

Definition at line 4841 of file uma_core.c.

References UMA_ZFLAG_LIMIT, uma_zone_set_maxcache(), uma_zone::uz_flags, uma_zone::uz_max_items, ZONE_LOCK, ZONE_UNLOCK, and zone_update_caches().

Referenced by pbuf_zsecond_create(), sysctl_handle_uma_zone_max(), and vm_pager_bufferinit().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ uma_zone_set_maxaction()

void uma_zone_set_maxaction ( uma_zone_t  zone,
uma_maxaction_t  maxaction 
)

Definition at line 4924 of file uma_core.c.

References uma_zone::uz_maxaction, and ZONE_ASSERT_COLD.

◆ uma_zone_set_maxcache()

◆ uma_zone_set_smr()

void uma_zone_set_smr ( uma_zone_t  zone,
smr_t  smr 
)

Definition at line 5059 of file uma_core.c.

References UMA_ZONE_SMR, uma_zone::uz_flags, uma_zone::uz_name, uma_zone::uz_smr, ZONE_ASSERT_COLD, and zone_update_caches().

Here is the call graph for this function:

◆ uma_zone_set_warning()

void uma_zone_set_warning ( uma_zone_t  zone,
const char *  warning 
)

Definition at line 4915 of file uma_core.c.

References uma_zone::uz_warning, and ZONE_ASSERT_COLD.

◆ uma_zone_set_zfini()

void uma_zone_set_zfini ( uma_zone_t  zone,
uma_fini  zfini 
)

Definition at line 5028 of file uma_core.c.

References uma_zone::uz_fini, and ZONE_ASSERT_COLD.

◆ uma_zone_set_zinit()

void uma_zone_set_zinit ( uma_zone_t  zone,
uma_init  zinit 
)

Definition at line 5019 of file uma_core.c.

References uma_zone::uz_init, and ZONE_ASSERT_COLD.

◆ uma_zsecond_create()

uma_zone_t uma_zsecond_create ( const char *  name,
uma_ctor  ctor,
uma_dtor  dtor,
uma_init  zinit,
uma_fini  zfini,
uma_zone_t  primary 
)

◆ uma_zwait()

void uma_zwait ( uma_zone_t  zone)

Definition at line 3365 of file uma_core.c.

References uma_zalloc(), uma_zalloc_pcpu(), uma_zalloc_smr(), uma_zfree(), uma_zfree_pcpu(), uma_zfree_smr(), UMA_ZONE_PCPU, UMA_ZONE_SMR, and uma_zone::uz_flags.

Referenced by swp_pager_meta_build(), and vm_radix_wait().

Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ pcpu_zone_16

uma_zone_t pcpu_zone_16
extern

◆ pcpu_zone_32

uma_zone_t pcpu_zone_32
extern

◆ pcpu_zone_4

uma_zone_t pcpu_zone_4
extern

◆ pcpu_zone_64

uma_zone_t pcpu_zone_64
extern

◆ pcpu_zone_8

uma_zone_t pcpu_zone_8
extern