FreeBSD virtual memory subsystem code
|
#include <sys/param.h>
#include <sys/malloc.h>
#include <sys/_smr.h>
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_zone * | uma_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 |
#define UMA_ALIGN_PTR (sizeof(void *) - 1) /* Alignment fit for ptr */ |
#define UMA_ALIGNOF | ( | type | ) | (_Alignof(type) - 1) /* Alignment fit for 'type' */ |
#define UMA_ANYDOMAIN -1 /* Special value for domain search. */ |
#define UMA_RECLAIM_DRAIN_CPU 2 /* release bucket and per-CPU caches */ |
#define UMA_SLAB_PRIV 0x08 /* Slab alloced from priv allocator */ |
#define UMA_ZONE_CACHESPREAD |
#define UMA_ZONE_CONTIG |
#define UMA_ZONE_FIRSTTOUCH 0x10000 /* First touch NUMA policy */ |
#define UMA_ZONE_INHERIT |
#define UMA_ZONE_MALLOC 0x0010 /* For use by malloc(9) only! */ |
#define UMA_ZONE_MTXCLASS 0x0040 /* Create a new lock class */ |
#define UMA_ZONE_NODUMP |
#define UMA_ZONE_NOFREE 0x0020 /* Do not free slabs of this type! */ |
#define UMA_ZONE_NOKASAN |
#define UMA_ZONE_NOTOUCH 0x0008 /* UMA may not access the memory */ |
#define UMA_ZONE_NOTPAGE 0x0100 /* allocf memory not vm pages */ |
#define UMA_ZONE_PCPU |
#define UMA_ZONE_ROUNDROBIN 0x20000 /* Round-robin NUMA policy. */ |
#define UMA_ZONE_SECONDARY 0x0200 /* Zone is a Secondary Zone */ |
#define UMA_ZONE_SMR |
#define UMA_ZONE_UNMANAGED |
#define UMA_ZONE_VM |
typedef void *(* uma_alloc) (uma_zone_t zone, vm_size_t size, int domain, uint8_t *pflag, int wait) |
typedef int(* uma_ctor) (void *mem, int size, void *arg, int flags) |
typedef void(* uma_free) (void *item, vm_size_t size, uint8_t pflag) |
typedef int(* uma_import) (void *arg, void **store, int count, int domain, int flags) |
typedef void(* uma_maxaction_t) (uma_zone_t, int) |
typedef void(* uma_release) (void *arg, void **store, int count) |
typedef struct uma_zone* uma_zone_t |
long uma_avail | ( | void | ) |
Definition at line 5332 of file uma_core.c.
References uma_kmem_limit, and uma_size().
unsigned long uma_limit | ( | void | ) |
Definition at line 5311 of file uma_core.c.
References uma_kmem_limit.
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().
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().
void uma_reclaim_domain | ( | int | req, |
int | domain | ||
) |
Definition at line 5213 of file uma_core.c.
References bucket_enable(), bucket_zone_drain(), uma_reclaim_args::domain, pcpu_cache_drain_safe(), uma_reclaim_args::req, slabzones, uma_reclaim_domain_cb(), UMA_RECLAIM_DRAIN, UMA_RECLAIM_DRAIN_CPU, UMA_RECLAIM_TRIM, uma_zone_reclaim_domain(), and zone_foreach().
Referenced by debug_uma_reclaim_domain(), and uma_reclaim().
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().
void uma_reclaim_worker | ( | void * | ) |
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.
unsigned long uma_size | ( | void | ) |
Definition at line 5325 of file uma_core.c.
References uma_kmem_total.
Referenced by uma_avail().
|
static |
Definition at line 332 of file uma.h.
Referenced by _vm_page_alloc_noobj_domain(), swap_pager_getpages_locked(), swap_pager_putpages(), swblk_trie_alloc(), swp_pager_meta_build(), uma_zwait(), vm_map_entry_create(), vm_object_allocate(), vm_object_allocate_anon(), vm_object_allocate_dyn(), vm_page_alloc_domain_after(), vm_page_getfake(), vm_thread_new(), vmspace_alloc(), vnode_pager_generic_getpages(), and vnode_pager_input_smlfs().
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().
void * uma_zalloc_domain | ( | uma_zone_t | zone, |
void * | arg, | ||
int | domain, | ||
int | flags | ||
) |
Definition at line 3776 of file uma_core.c.
References uma_zctor_args::flags, item_ctor(), uma_bucket::ub_bucket, uma_bucket::ub_cnt, uma_zalloc_arg(), UMA_ZONE_FIRSTTOUCH, UMA_ZONE_SMR, uma_zone::uz_allocs, uma_zone::uz_flags, uma_zone::uz_name, uma_zone::uz_size, vm_ndomains, ZDOM_UNLOCK, zone_alloc_item(), zone_domain_lock(), zone_fetch_bucket(), and zone_put_bucket().
|
static |
Definition at line 338 of file uma.h.
Referenced by uma_zwait().
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.
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().
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 | ||
) |
Definition at line 3325 of file uma_core.c.
References uma_zctor_args::align, uma_zctor_args::arg, uma_zctor_args::ctor, uma_zctor_args::dtor, uma_zctor_args::fini, uma_zctor_args::flags, uma_zctor_args::import, uma_zctor_args::name, uma_zctor_args::release, uma_zctor_args::size, UMA_ANYDOMAIN, UMA_ZFLAG_CACHE, uma_zctor_args::uminit, zone_alloc_item(), and zones.
Referenced by kstack_cache_init(), and vm_page_init_cache_zones().
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 | ||
) |
Definition at line 3251 of file uma_core.c.
References uma_zctor_args::align, uma_zctor_args::ctor, uma_zctor_args::dtor, uma_zctor_args::fini, uma_zctor_args::flags, uma_zctor_args::keg, uma_zctor_args::name, uma_zctor_args::size, trash_fini(), trash_init(), UMA_ANYDOMAIN, UMA_ZONE_NOFREE, UMA_ZONE_NOTOUCH, UMA_ZONE_ZINIT, uma_zctor_args::uminit, zone_alloc_item(), and zones.
Referenced by bucket_init(), swap_pager_swap_init(), uma_startup1(), vm_map_startup(), vm_object_init(), vm_pager_bufferinit(), and vm_radix_zinit().
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.
|
static |
Definition at line 373 of file uma.h.
Referenced by swblk_trie_free(), swp_pager_async_iodone(), swp_pager_free_empty_swblk(), swp_pager_meta_build(), swp_pager_meta_free_all(), swp_pager_meta_transfer(), uma_zwait(), vm_map_entry_dispose(), vm_object_destroy(), vm_page_free_toq(), vm_page_putfake(), vm_thread_dispose(), vmspace_alloc(), vmspace_dofree(), vnode_pager_generic_getpages(), vnode_pager_generic_getpages_done_async(), and vnode_pager_input_smlfs().
void uma_zfree_arg | ( | uma_zone_t | zone, |
void * | item, | ||
void * | arg | ||
) |
Definition at line 4417 of file uma_core.c.
References cache_bucket_push(), cache_bucket_swap(), cache_free(), cache_uz_flags(), cache_uz_size(), item_dtor(), SKIP_DTOR, SKIP_NONE, uma_cache::uc_allocbucket, uma_cache::uc_crossbucket, uma_cache::uc_freebucket, uma_cache_bucket::ucb_cnt, uma_cache_bucket::ucb_entries, UMA_ALWAYS_CTORDTOR, UMA_ZFLAG_CTORDTOR, UMA_ZFLAG_LIMIT, UMA_ZONE_FIRSTTOUCH, UMA_ZONE_SMR, uma_zone::uz_cpu, uma_zone::uz_flags, uma_zone::uz_name, uma_zone::uz_sleepers, and zone_free_item().
Referenced by bucket_free(), and uma_zfree_pcpu_arg().
|
static |
Definition at line 379 of file uma.h.
Referenced by uma_zwait().
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.
void uma_zfree_smr | ( | uma_zone_t | zone, |
void * | item | ||
) |
Definition at line 4366 of file uma_core.c.
References cache_bucket_push(), cache_free(), cache_uz_flags(), SKIP_NONE, uma_cache::uc_crossbucket, uma_cache::uc_freebucket, uma_cache_bucket::ucb_cnt, uma_cache_bucket::ucb_entries, UMA_ZONE_FIRSTTOUCH, UMA_ZONE_SMR, uma_zone::uz_cpu, uma_zone::uz_flags, uma_zone::uz_name, uma_zone::uz_smr, and zone_free_item().
Referenced by uma_zwait(), and vm_radix_node_put().
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().
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().
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().
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().
size_t uma_zone_memory | ( | uma_zone_t | zone | ) |
Definition at line 5173 of file uma_core.c.
References uma_domain::ud_pages, uma_keg::uk_domain, UMA_ZFLAG_CACHE, uma_zone::uz_flags, uma_zone::uz_keg, uma_zone::uz_size, vm_ndomains, and ZDOM_GET.
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().
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().
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().
int uma_zone_reserve_kva | ( | uma_zone_t | zone, |
int | nitems | ||
) |
Definition at line 5092 of file uma_core.c.
References KEG_ASSERT_COLD, KEG_GET, kva_alloc(), noobj_alloc(), uma_keg::uk_allocf, uma_keg::uk_flags, uma_keg::uk_ipers, uma_keg::uk_kva, uma_keg::uk_offset, uma_keg::uk_ppera, uma_small_alloc(), UMA_ZFLAG_LIMIT, UMA_ZONE_NOFREE, uma_zone::uz_flags, uma_zone::uz_max_items, ZONE_ASSERT_COLD, and zone_update_caches().
Referenced by swap_pager_swap_init(), and vm_radix_reserve_kva().
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().
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.
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().
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.
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().
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.
void uma_zone_set_maxcache | ( | uma_zone_t | zone, |
int | nitems | ||
) |
Definition at line 4868 of file uma_core.c.
References BUCKET_MAX, UMA_ZONE_FIRSTTOUCH, uma_zone::uz_bucket_max, uma_zone::uz_bucket_size, uma_zone::uz_bucket_size_max, uma_zone::uz_bucket_size_min, uma_zone::uz_flags, vm_ndomains, ZONE_LOCK, and ZONE_UNLOCK.
Referenced by kstack_cache_init(), sysctl_kstack_cache_size(), uma_zone_set_max(), and vm_page_init_cache_zones().
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().
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.
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.
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_zone_t uma_zsecond_create | ( | const char * | name, |
uma_ctor | ctor, | ||
uma_dtor | dtor, | ||
uma_init | zinit, | ||
uma_fini | zfini, | ||
uma_zone_t | primary | ||
) |
Definition at line 3297 of file uma_core.c.
References uma_zctor_args::align, uma_zctor_args::ctor, uma_zctor_args::dtor, uma_zctor_args::fini, uma_zctor_args::flags, uma_zctor_args::keg, uma_zctor_args::name, uma_zctor_args::size, uma_keg::uk_align, uma_keg::uk_flags, uma_keg::uk_size, UMA_ANYDOMAIN, UMA_ZONE_SECONDARY, uma_zctor_args::uminit, uma_zone::uz_keg, zone_alloc_item(), and zones.
Referenced by pbuf_zsecond_create().
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().
|
extern |
|
extern |
|
extern |
|
extern |
|
extern |