e2deab7a75
Refactor huge allocation to be managed by arenas (though the global red-black tree of huge allocations remains for lookup during deallocation). This is the logical conclusion of recent changes that 1) made per arena dss precedence apply to huge allocation, and 2) made it possible to replace the per arena chunk allocation/deallocation functions. Remove the top level huge stats, and replace them with per arena huge stats. Normalize function names and types to *dalloc* (some were *dealloc*). Remove the --enable-mremap option. As jemalloc currently operates, this is a performace regression for some applications, but planned work to logarithmically space huge size classes should provide similar amortized performance. The motivation for this change was that mremap-based huge reallocation forced leaky abstractions that prevented refactoring.
423 lines
7.2 KiB
Plaintext
423 lines
7.2 KiB
Plaintext
a0calloc
|
|
a0free
|
|
a0malloc
|
|
arena_alloc_junk_small
|
|
arena_bin_index
|
|
arena_bin_info
|
|
arena_boot
|
|
arena_chunk_alloc_huge
|
|
arena_chunk_dalloc_huge
|
|
arena_dalloc
|
|
arena_dalloc_bin
|
|
arena_dalloc_bin_locked
|
|
arena_dalloc_junk_large
|
|
arena_dalloc_junk_small
|
|
arena_dalloc_large
|
|
arena_dalloc_large_locked
|
|
arena_dalloc_small
|
|
arena_dss_prec_get
|
|
arena_dss_prec_set
|
|
arena_malloc
|
|
arena_malloc_large
|
|
arena_malloc_small
|
|
arena_mapbits_allocated_get
|
|
arena_mapbits_binind_get
|
|
arena_mapbits_dirty_get
|
|
arena_mapbits_get
|
|
arena_mapbits_large_binind_set
|
|
arena_mapbits_large_get
|
|
arena_mapbits_large_set
|
|
arena_mapbits_large_size_get
|
|
arena_mapbits_small_runind_get
|
|
arena_mapbits_small_set
|
|
arena_mapbits_unallocated_set
|
|
arena_mapbits_unallocated_size_get
|
|
arena_mapbits_unallocated_size_set
|
|
arena_mapbits_unzeroed_get
|
|
arena_mapbits_unzeroed_set
|
|
arena_mapbitsp_get
|
|
arena_mapbitsp_read
|
|
arena_mapbitsp_write
|
|
arena_mapp_get
|
|
arena_maxclass
|
|
arena_new
|
|
arena_palloc
|
|
arena_postfork_child
|
|
arena_postfork_parent
|
|
arena_prefork
|
|
arena_prof_accum
|
|
arena_prof_accum_impl
|
|
arena_prof_accum_locked
|
|
arena_prof_ctx_get
|
|
arena_prof_ctx_set
|
|
arena_prof_promoted
|
|
arena_ptr_small_binind_get
|
|
arena_purge_all
|
|
arena_quarantine_junk_small
|
|
arena_ralloc
|
|
arena_ralloc_junk_large
|
|
arena_ralloc_no_move
|
|
arena_redzone_corruption
|
|
arena_run_regind
|
|
arena_salloc
|
|
arena_stats_merge
|
|
arena_tcache_fill_small
|
|
arenas
|
|
arenas_booted
|
|
arenas_cleanup
|
|
arenas_extend
|
|
arenas_initialized
|
|
arenas_lock
|
|
arenas_tls
|
|
arenas_tsd
|
|
arenas_tsd_boot
|
|
arenas_tsd_cleanup_wrapper
|
|
arenas_tsd_get
|
|
arenas_tsd_get_wrapper
|
|
arenas_tsd_init_head
|
|
arenas_tsd_set
|
|
atomic_add_u
|
|
atomic_add_uint32
|
|
atomic_add_uint64
|
|
atomic_add_z
|
|
atomic_sub_u
|
|
atomic_sub_uint32
|
|
atomic_sub_uint64
|
|
atomic_sub_z
|
|
base_alloc
|
|
base_boot
|
|
base_calloc
|
|
base_node_alloc
|
|
base_node_dalloc
|
|
base_postfork_child
|
|
base_postfork_parent
|
|
base_prefork
|
|
bitmap_full
|
|
bitmap_get
|
|
bitmap_info_init
|
|
bitmap_info_ngroups
|
|
bitmap_init
|
|
bitmap_set
|
|
bitmap_sfu
|
|
bitmap_size
|
|
bitmap_unset
|
|
bt_init
|
|
buferror
|
|
choose_arena
|
|
choose_arena_hard
|
|
chunk_alloc_arena
|
|
chunk_alloc_base
|
|
chunk_alloc_default
|
|
chunk_alloc_dss
|
|
chunk_alloc_mmap
|
|
chunk_boot
|
|
chunk_dalloc_default
|
|
chunk_dalloc_mmap
|
|
chunk_dss_boot
|
|
chunk_dss_postfork_child
|
|
chunk_dss_postfork_parent
|
|
chunk_dss_prec_get
|
|
chunk_dss_prec_set
|
|
chunk_dss_prefork
|
|
chunk_in_dss
|
|
chunk_npages
|
|
chunk_postfork_child
|
|
chunk_postfork_parent
|
|
chunk_prefork
|
|
chunk_unmap
|
|
chunks_mtx
|
|
chunks_rtree
|
|
chunksize
|
|
chunksize_mask
|
|
ckh_bucket_search
|
|
ckh_count
|
|
ckh_delete
|
|
ckh_evict_reloc_insert
|
|
ckh_insert
|
|
ckh_isearch
|
|
ckh_iter
|
|
ckh_new
|
|
ckh_pointer_hash
|
|
ckh_pointer_keycomp
|
|
ckh_rebuild
|
|
ckh_remove
|
|
ckh_search
|
|
ckh_string_hash
|
|
ckh_string_keycomp
|
|
ckh_try_bucket_insert
|
|
ckh_try_insert
|
|
ctl_boot
|
|
ctl_bymib
|
|
ctl_byname
|
|
ctl_nametomib
|
|
ctl_postfork_child
|
|
ctl_postfork_parent
|
|
ctl_prefork
|
|
dss_prec_names
|
|
extent_tree_ad_first
|
|
extent_tree_ad_insert
|
|
extent_tree_ad_iter
|
|
extent_tree_ad_iter_recurse
|
|
extent_tree_ad_iter_start
|
|
extent_tree_ad_last
|
|
extent_tree_ad_new
|
|
extent_tree_ad_next
|
|
extent_tree_ad_nsearch
|
|
extent_tree_ad_prev
|
|
extent_tree_ad_psearch
|
|
extent_tree_ad_remove
|
|
extent_tree_ad_reverse_iter
|
|
extent_tree_ad_reverse_iter_recurse
|
|
extent_tree_ad_reverse_iter_start
|
|
extent_tree_ad_search
|
|
extent_tree_szad_first
|
|
extent_tree_szad_insert
|
|
extent_tree_szad_iter
|
|
extent_tree_szad_iter_recurse
|
|
extent_tree_szad_iter_start
|
|
extent_tree_szad_last
|
|
extent_tree_szad_new
|
|
extent_tree_szad_next
|
|
extent_tree_szad_nsearch
|
|
extent_tree_szad_prev
|
|
extent_tree_szad_psearch
|
|
extent_tree_szad_remove
|
|
extent_tree_szad_reverse_iter
|
|
extent_tree_szad_reverse_iter_recurse
|
|
extent_tree_szad_reverse_iter_start
|
|
extent_tree_szad_search
|
|
get_errno
|
|
hash
|
|
hash_fmix_32
|
|
hash_fmix_64
|
|
hash_get_block_32
|
|
hash_get_block_64
|
|
hash_rotl_32
|
|
hash_rotl_64
|
|
hash_x64_128
|
|
hash_x86_128
|
|
hash_x86_32
|
|
huge_allocated
|
|
huge_boot
|
|
huge_dalloc
|
|
huge_dalloc_junk
|
|
huge_malloc
|
|
huge_ndalloc
|
|
huge_nmalloc
|
|
huge_palloc
|
|
huge_postfork_child
|
|
huge_postfork_parent
|
|
huge_prefork
|
|
huge_prof_ctx_get
|
|
huge_prof_ctx_set
|
|
huge_ralloc
|
|
huge_ralloc_no_move
|
|
huge_salloc
|
|
icalloc
|
|
icalloct
|
|
idalloc
|
|
idalloct
|
|
imalloc
|
|
imalloct
|
|
in_valgrind
|
|
ipalloc
|
|
ipalloct
|
|
iqalloc
|
|
iqalloct
|
|
iralloc
|
|
iralloct
|
|
iralloct_realign
|
|
isalloc
|
|
isthreaded
|
|
ivsalloc
|
|
ixalloc
|
|
jemalloc_postfork_child
|
|
jemalloc_postfork_parent
|
|
jemalloc_prefork
|
|
malloc_cprintf
|
|
malloc_mutex_init
|
|
malloc_mutex_lock
|
|
malloc_mutex_postfork_child
|
|
malloc_mutex_postfork_parent
|
|
malloc_mutex_prefork
|
|
malloc_mutex_unlock
|
|
malloc_printf
|
|
malloc_snprintf
|
|
malloc_strtoumax
|
|
malloc_tsd_boot
|
|
malloc_tsd_cleanup_register
|
|
malloc_tsd_dalloc
|
|
malloc_tsd_malloc
|
|
malloc_tsd_no_cleanup
|
|
malloc_vcprintf
|
|
malloc_vsnprintf
|
|
malloc_write
|
|
map_bias
|
|
mb_write
|
|
mutex_boot
|
|
narenas_auto
|
|
narenas_total
|
|
narenas_total_get
|
|
ncpus
|
|
nhbins
|
|
opt_abort
|
|
opt_dss
|
|
opt_junk
|
|
opt_lg_chunk
|
|
opt_lg_dirty_mult
|
|
opt_lg_prof_interval
|
|
opt_lg_prof_sample
|
|
opt_lg_tcache_max
|
|
opt_narenas
|
|
opt_prof
|
|
opt_prof_accum
|
|
opt_prof_active
|
|
opt_prof_final
|
|
opt_prof_gdump
|
|
opt_prof_leak
|
|
opt_prof_prefix
|
|
opt_quarantine
|
|
opt_redzone
|
|
opt_stats_print
|
|
opt_tcache
|
|
opt_utrace
|
|
opt_xmalloc
|
|
opt_zero
|
|
p2rz
|
|
pages_purge
|
|
pow2_ceil
|
|
prof_backtrace
|
|
prof_boot0
|
|
prof_boot1
|
|
prof_boot2
|
|
prof_bt_count
|
|
prof_ctx_get
|
|
prof_ctx_set
|
|
prof_dump_open
|
|
prof_free
|
|
prof_gdump
|
|
prof_idump
|
|
prof_interval
|
|
prof_lookup
|
|
prof_malloc
|
|
prof_malloc_record_object
|
|
prof_mdump
|
|
prof_postfork_child
|
|
prof_postfork_parent
|
|
prof_prefork
|
|
prof_realloc
|
|
prof_sample_accum_update
|
|
prof_sample_threshold_update
|
|
prof_tdata_booted
|
|
prof_tdata_cleanup
|
|
prof_tdata_get
|
|
prof_tdata_init
|
|
prof_tdata_initialized
|
|
prof_tdata_tls
|
|
prof_tdata_tsd
|
|
prof_tdata_tsd_boot
|
|
prof_tdata_tsd_cleanup_wrapper
|
|
prof_tdata_tsd_get
|
|
prof_tdata_tsd_get_wrapper
|
|
prof_tdata_tsd_init_head
|
|
prof_tdata_tsd_set
|
|
quarantine
|
|
quarantine_alloc_hook
|
|
quarantine_boot
|
|
quarantine_booted
|
|
quarantine_cleanup
|
|
quarantine_init
|
|
quarantine_tls
|
|
quarantine_tsd
|
|
quarantine_tsd_boot
|
|
quarantine_tsd_cleanup_wrapper
|
|
quarantine_tsd_get
|
|
quarantine_tsd_get_wrapper
|
|
quarantine_tsd_init_head
|
|
quarantine_tsd_set
|
|
register_zone
|
|
rtree_delete
|
|
rtree_get
|
|
rtree_get_locked
|
|
rtree_new
|
|
rtree_postfork_child
|
|
rtree_postfork_parent
|
|
rtree_prefork
|
|
rtree_set
|
|
s2u
|
|
sa2u
|
|
set_errno
|
|
small_bin2size
|
|
small_bin2size_tab
|
|
small_size2bin
|
|
small_size2bin_tab
|
|
stats_cactive
|
|
stats_cactive_add
|
|
stats_cactive_get
|
|
stats_cactive_sub
|
|
stats_chunks
|
|
stats_print
|
|
tcache_alloc_easy
|
|
tcache_alloc_large
|
|
tcache_alloc_small
|
|
tcache_alloc_small_hard
|
|
tcache_arena_associate
|
|
tcache_arena_dissociate
|
|
tcache_bin_flush_large
|
|
tcache_bin_flush_small
|
|
tcache_bin_info
|
|
tcache_boot0
|
|
tcache_boot1
|
|
tcache_booted
|
|
tcache_create
|
|
tcache_dalloc_large
|
|
tcache_dalloc_small
|
|
tcache_destroy
|
|
tcache_enabled_booted
|
|
tcache_enabled_get
|
|
tcache_enabled_initialized
|
|
tcache_enabled_set
|
|
tcache_enabled_tls
|
|
tcache_enabled_tsd
|
|
tcache_enabled_tsd_boot
|
|
tcache_enabled_tsd_cleanup_wrapper
|
|
tcache_enabled_tsd_get
|
|
tcache_enabled_tsd_get_wrapper
|
|
tcache_enabled_tsd_init_head
|
|
tcache_enabled_tsd_set
|
|
tcache_event
|
|
tcache_event_hard
|
|
tcache_flush
|
|
tcache_get
|
|
tcache_get_hard
|
|
tcache_initialized
|
|
tcache_maxclass
|
|
tcache_salloc
|
|
tcache_stats_merge
|
|
tcache_thread_cleanup
|
|
tcache_tls
|
|
tcache_tsd
|
|
tcache_tsd_boot
|
|
tcache_tsd_cleanup_wrapper
|
|
tcache_tsd_get
|
|
tcache_tsd_get_wrapper
|
|
tcache_tsd_init_head
|
|
tcache_tsd_set
|
|
thread_allocated_booted
|
|
thread_allocated_initialized
|
|
thread_allocated_tls
|
|
thread_allocated_tsd
|
|
thread_allocated_tsd_boot
|
|
thread_allocated_tsd_cleanup_wrapper
|
|
thread_allocated_tsd_get
|
|
thread_allocated_tsd_get_wrapper
|
|
thread_allocated_tsd_init_head
|
|
thread_allocated_tsd_set
|
|
tsd_init_check_recursion
|
|
tsd_init_finish
|
|
u2rz
|
|
valgrind_freelike_block
|
|
valgrind_make_mem_defined
|
|
valgrind_make_mem_noaccess
|
|
valgrind_make_mem_undefined
|