|
umem
1.0.1
|
Go to the source code of this file.
Macros | |
| #define | PAGESIZE pagesize |
| #define | UMEM_REAP_DONE 0x00000000 /* inactive */ |
| #define | UMEM_REAP_ADDING 0x00000001 /* umem_reap() is active */ |
| #define | UMEM_REAP_ACTIVE 0x00000002 /* update thread is reaping */ |
Functions | |
| int | umem_init (void) |
| void * | _umem_alloc (size_t size, int umflags) |
| void * | _umem_zalloc (size_t size, int umflags) |
| void | _umem_free (void *buf, size_t size) |
| void * | _umem_cache_alloc (umem_cache_t *cache, int flags) |
| void | _umem_cache_free (umem_cache_t *cache, void *buffer) |
| void | umem_type_init (caddr_t, size_t, size_t) |
| int | umem_get_max_ncpus (void) |
| void | umem_process_updates (void) |
| void | umem_cache_applyall (void(*)(umem_cache_t *)) |
| void | umem_cache_update (umem_cache_t *) |
| void | umem_forkhandler_init (void) |
| int | umem_create_update_thread (void) |
| void | umem_setup_envvars (int) |
| void | umem_process_envvars (void) |
| #define PAGESIZE pagesize |
Referenced by umem_nofail_callback().
| #define UMEM_REAP_ACTIVE 0x00000002 /* update thread is reaping */ |
Referenced by umem_reap().
| #define UMEM_REAP_ADDING 0x00000001 /* umem_reap() is active */ |
Referenced by umem_reap().
| #define UMEM_REAP_DONE 0x00000000 /* inactive */ |
Referenced by umem_process_updates(), and umem_reap().
| void* _umem_alloc | ( | size_t | size, |
| int | umflags | ||
| ) |
References _umem_cache_alloc(), ASSERT, umem_cache::cache_flags, UMEM_ALIGN_SHIFT, UMEM_BUFTAG, umem_init(), UMEM_REDZONE_BYTE, UMEM_SIZE_ENCODE, UMEM_VMFLAGS, UMF_BUFTAG, and vmem_alloc().
Referenced by _umem_zalloc(), and malloc().
| void* _umem_cache_alloc | ( | umem_cache_t * | cache, |
| int | flags | ||
| ) |
References atomic_add_64, umem_cache::cache_alloc_fail, umem_cache::cache_constructor, umem_cache::cache_cpu_mask, umem_cache::cache_empty, umem_cache::cache_flags, umem_cache::cache_full, umem_cache::cache_private, umem_cpu_cache::cc_alloc, umem_cpu_cache::cc_flags, umem_cpu_cache::cc_loaded, umem_cpu_cache::cc_lock, umem_cpu_cache::cc_magsize, umem_cpu_cache::cc_ploaded, umem_cpu_cache::cc_prounds, umem_cpu_cache::cc_rounds, CPU, umem_magazine::mag_round, mutex_lock, mutex_unlock, UMEM_CPU_CACHE, UMEM_DEFAULT, and UMF_BUFTAG.
Referenced by _umem_alloc(), _umem_cache_free(), _umem_zalloc(), and vmem_alloc().
| void _umem_cache_free | ( | umem_cache_t * | cache, |
| void * | buffer | ||
| ) |
References _umem_cache_alloc(), _umem_cache_free(), umem_cache::cache_cpu_mask, umem_cache::cache_destructor, umem_cache::cache_empty, umem_cache::cache_flags, umem_cache::cache_full, umem_cache::cache_magtype, umem_cache::cache_private, umem_cpu_cache::cc_flags, umem_cpu_cache::cc_free, umem_cpu_cache::cc_loaded, umem_cpu_cache::cc_lock, umem_cpu_cache::cc_magsize, umem_cpu_cache::cc_ploaded, umem_cpu_cache::cc_prounds, umem_cpu_cache::cc_rounds, CPU, umem_magazine::mag_round, umem_magtype::mt_cache, umem_magtype::mt_magsize, mutex_lock, mutex_unlock, UMEM_CPU_CACHE, UMEM_DEFAULT, and UMF_BUFTAG.
Referenced by _umem_cache_free(), _umem_free(), and vmem_free().
| void _umem_free | ( | void * | buf, |
| size_t | size | ||
| ) |
References _umem_cache_free(), umem_buftag::bt_redzone, umem_cache::cache_flags, UMEM_ALIGN_SHIFT, UMEM_BUFTAG, UMEM_FREE_PATTERN, UMEM_REDZONE_BYTE, UMEM_REDZONE_PATTERN, UMEM_SIZE_ENCODE, UMEM_SIZE_VALID, UMERR_BADSIZE, UMERR_DUPFREE, UMERR_REDZONE, UMF_BUFTAG, and vmem_free().
Referenced by valloc().
| void* _umem_zalloc | ( | size_t | size, |
| int | umflags | ||
| ) |
| void umem_cache_applyall | ( | void(*)(umem_cache_t *) | ) |
References _cond_wait(), ASSERT, umem_bufctl::bc_addr, umem_bufctl_audit::bc_depth, umem_bufctl::bc_next, umem_bufctl_audit::bc_stack, umem_bufctl_audit::bc_thread, umem_bufctl_audit::bc_timestamp, umem_buftag::bt_bufctl, umem_buftag::bt_bxstat, umem_cache::cache_bufctl_cache, umem_cache::cache_chunksize, umem_cache::cache_flags, umem_cache::cache_lock, umem_cache::cache_name, umem_cache::cache_next, umem_cache::cache_nullslab, umem_cache::cache_prev, umem_cache::cache_uflags, umem_cache::cache_unext, umem_cache::cache_uprev, umem_cache::cache_verify, cond_broadcast, IN_UPDATE, MIN, mutex_lock, mutex_unlock, NANOSEC, P2PHASE, print_sym(), umem_slab::slab_base, umem_slab::slab_next, thr_self, umem_abort_info, UMEM_ALIGN, UMEM_BUFTAG, UMEM_BUFTAG_FREE, umem_cache_lock, umem_err_recoverable(), UMEM_FREE_PATTERN, UMEM_HASH, umem_logging, umem_null_cache, umem_printf(), UMEM_SIZE_DECODE, UMEM_SLAB_MEMBER, umem_st_update_thr, umem_stack_depth, umem_update_cv, umem_update_lock, umem_update_thr, UMERR_BADADDR, UMERR_BADBASE, UMERR_BADBUFCTL, UMERR_BADBUFTAG, UMERR_BADCACHE, UMERR_BADSIZE, UMERR_DUPFREE, UMERR_MODIFIED, UMERR_REDZONE, UMF_AUDIT, UMF_BUFTAG, UMF_HASH, UMU_ACTIVE, and UMU_NOTIFY.
Referenced by umem_init(), and umem_process_updates().
| void umem_cache_update | ( | umem_cache_t * | ) |
References ASSERT, umem_cache::cache_buftotal, umem_cache::cache_chunksize, umem_cache::cache_depot_contention, umem_cache::cache_depot_contention_prev, umem_cache::cache_depot_lock, umem_cache::cache_flags, umem_cache::cache_hash_mask, umem_cache::cache_lock, umem_cache::cache_magtype, umem_magtype::mt_maxbuf, MUTEX_HELD, mutex_lock, mutex_unlock, umem_cache_lock, umem_depot_contention, UMEM_HASH_INITIAL, UMF_HASH, UMU_HASH_RESCALE, and UMU_MAGAZINE_RESIZE.
Referenced by umem_process_updates().
| int umem_create_update_thread | ( | void | ) |
References ASSERT, MUTEX_HELD, THR_BOUND, THR_DAEMON, THR_DETACHED, thr_sigsetmask, umem_update_lock, and umem_update_thr.
Referenced by umem_reap().
| void umem_forkhandler_init | ( | void | ) |
Referenced by umem_startup().
| int umem_get_max_ncpus | ( | void | ) |
Referenced by umem_init().
| int umem_init | ( | void | ) |
References _cond_wait(), ASSERT, cond_broadcast, umem_cpu::cpu_cache_offset, umem_cpu::cpu_number, CPUHINT_MAX, issetugid, log_message(), mutex_lock, mutex_unlock, NANOSEC, pagesize, thr_self, UMEM_ALIGN, umem_cache_applyall(), UMEM_CACHE_SIZE, umem_content_log_size, UMEM_CPU_CACHE_SIZE, umem_failure_log_size, umem_flags, umem_get_max_ncpus(), umem_init_cv, umem_init_env_ready, umem_init_lock, umem_init_thr, umem_logging, umem_max_ncpus, umem_maxverify, umem_minfirewall, umem_mtbf, umem_panic(), umem_process_envvars(), UMEM_READY, umem_ready, UMEM_READY_INIT_FAILED, UMEM_READY_INITING, UMEM_READY_STARTUP, umem_reap_next, umem_setup_envvars(), umem_slab_log_size, umem_transaction_log_size, umem_update_next, UMF_AUDIT, VM_NOSLEEP, vmem::vm_quantum, vmem_alloc(), vmem_create(), vmem_free(), vmem_heap_arena(), and vmem_no_debug().
Referenced by _umem_alloc(), _umem_alloc_align(), memalign(), umem_cache_create(), umem_nofail_callback(), and vmem_heap_arena().
| void umem_process_envvars | ( | void | ) |
References umem_envvar::env_func_result, umem_envvar::env_getenv_result, umem_envvar::env_item_list, umem_envvar::env_name, and umem_process_value().
Referenced by umem_init().
| void umem_process_updates | ( | void | ) |
References ASSERT, umem_cache::cache_uflags, umem_cache::cache_unext, umem_cache::cache_uprev, cond_broadcast, MUTEX_HELD, mutex_lock, mutex_unlock, NANOSEC, thr_self, umem_cache_applyall(), umem_cache_update(), umem_process_updates(), UMEM_REAP_DONE, umem_reap_interval, umem_reap_next, umem_reaping, umem_st_update_thr, umem_update_cv, umem_update_lock, umem_update_thr, UMU_ACTIVE, UMU_HASH_RESCALE, UMU_MAGAZINE_RESIZE, UMU_NOTIFY, UMU_REAP, and vmem_update().
Referenced by umem_process_updates().
| void umem_setup_envvars | ( | int | ) |
References umem_envvar::env_func, umem_envvar::env_func_result, umem_envvar::env_getenv_result, umem_envvar::env_name, log_message(), and RTLD_FIRST.
Referenced by umem_init().
| void umem_type_init | ( | caddr_t | , |
| size_t | , | ||
| size_t | |||
| ) |
References _sysconf, and pagesize.
Referenced by umem_startup().
| size_t pagesize |
| uint32_t umem_abort |
| mutex_t umem_cache_lock |
Referenced by umem_cache_applyall(), umem_cache_create(), umem_cache_destroy(), and umem_cache_update().
| umem_log_header_t* umem_content_log |
| size_t umem_content_log_size |
Referenced by umem_init().
| size_t umem_content_maxsave |
Referenced by umem_cache_create().
| uint32_t umem_depot_contention |
Referenced by umem_cache_update().
| umem_log_header_t* umem_failure_log |
| size_t umem_failure_log_size |
Referenced by umem_init().
| uint32_t umem_flags |
Referenced by umem_cache_create(), and umem_init().
| mutex_t umem_flags_lock |
Referenced by umem_cache_create().
| mutex_t umem_init_lock |
Referenced by umem_init().
| thread_t umem_init_thr |
Referenced by umem_cache_create(), umem_init(), and vmem_heap_arena().
| size_t umem_lite_maxalign |
Referenced by umem_cache_create().
| size_t umem_lite_minsize |
Referenced by umem_cache_create().
| uint32_t umem_logging |
Referenced by umem_cache_applyall(), umem_init(), and umem_nofail_callback().
| uint32_t umem_max_ncpus |
Referenced by _umem_free_align(), umem_cache_create(), umem_cache_destroy(), umem_init(), and umem_nofail_callback().
| size_t umem_maxverify |
Referenced by umem_cache_create(), and umem_init().
| vmem_t* umem_memalign_arena |
Referenced by memalign(), and valloc().
| size_t umem_minfirewall |
Referenced by umem_cache_create(), and umem_init().
| uint32_t umem_mtbf |
Referenced by umem_init().
| umem_cache_t umem_null_cache |
Referenced by umem_cache_applyall(), and umem_cache_create().
| uint32_t umem_output |
| int umem_ready |
Referenced by umem_cache_create(), umem_init(), umem_reap(), umem_startup(), and vmem_heap_arena().
| uint32_t umem_reap_interval |
Referenced by umem_process_updates().
| volatile hrtime_t umem_reap_next |
Referenced by umem_init(), umem_process_updates(), and umem_reap().
| volatile uint32_t umem_reaping |
Referenced by umem_process_updates(), and umem_reap().
| umem_log_header_t* umem_slab_log |
| size_t umem_slab_log_size |
Referenced by umem_init().
| volatile thread_t umem_st_update_thr |
Referenced by umem_cache_applyall(), umem_process_updates(), and umem_reap().
| uint32_t umem_stack_depth |
Referenced by umem_cache_applyall(), and umem_cache_destroy().
| umem_log_header_t* umem_transaction_log |
| size_t umem_transaction_log_size |
Referenced by umem_init().
| cond_t umem_update_cv |
Referenced by umem_cache_applyall(), umem_process_updates(), and umem_reap().
| uint32_t umem_update_interval |
| mutex_t umem_update_lock |
Referenced by umem_cache_applyall(), umem_create_update_thread(), umem_process_updates(), and umem_reap().
| struct timeval umem_update_next |
Referenced by umem_init().
| thread_t umem_update_thr |
Referenced by umem_cache_applyall(), umem_create_update_thread(), umem_process_updates(), and umem_reap().
1.8.11