• Home
  • Raw
  • Download

Lines Matching refs:tsd

44 tcache_event_hard(tsd_t *tsd, tcache_t *tcache) {  in tcache_event_hard()  argument
58 tcache_bin_flush_small(tsd, tcache, tbin, binind, in tcache_event_hard()
71 tcache_bin_flush_large(tsd, tbin, binind, tbin->ncached in tcache_event_hard()
108 tcache_bin_flush_small(tsd_t *tsd, tcache_t *tcache, cache_bin_t *tbin, in tcache_bin_flush_small() argument
121 item_extent[i] = iealloc(tsd_tsdn(tsd), *(tbin->avail - 1 - i)); in tcache_bin_flush_small()
131 if (arena_prof_accum(tsd_tsdn(tsd), arena, in tcache_bin_flush_small()
133 prof_idump(tsd_tsdn(tsd)); in tcache_bin_flush_small()
138 malloc_mutex_lock(tsd_tsdn(tsd), &bin->lock); in tcache_bin_flush_small()
155 arena_dalloc_bin_junked_locked(tsd_tsdn(tsd), in tcache_bin_flush_small()
169 malloc_mutex_unlock(tsd_tsdn(tsd), &bin->lock); in tcache_bin_flush_small()
170 arena_decay_ticks(tsd_tsdn(tsd), bin_arena, nflush - ndeferred); in tcache_bin_flush_small()
179 malloc_mutex_lock(tsd_tsdn(tsd), &bin->lock); in tcache_bin_flush_small()
185 malloc_mutex_unlock(tsd_tsdn(tsd), &bin->lock); in tcache_bin_flush_small()
197 tcache_bin_flush_large(tsd_t *tsd, cache_bin_t *tbin, szind_t binind, in tcache_bin_flush_large() argument
212 item_extent[i] = iealloc(tsd_tsdn(tsd), *(tbin->avail - 1 - i)); in tcache_bin_flush_large()
225 malloc_mutex_lock(tsd_tsdn(tsd), &locked_arena->large_mtx); in tcache_bin_flush_large()
231 large_dalloc_prep_junked_locked(tsd_tsdn(tsd), in tcache_bin_flush_large()
237 idump = arena_prof_accum(tsd_tsdn(tsd), arena, in tcache_bin_flush_large()
244 arena_stats_large_nrequests_add(tsd_tsdn(tsd), in tcache_bin_flush_large()
251 malloc_mutex_unlock(tsd_tsdn(tsd), &locked_arena->large_mtx); in tcache_bin_flush_large()
260 large_dalloc_finish(tsd_tsdn(tsd), extent); in tcache_bin_flush_large()
274 prof_idump(tsd_tsdn(tsd)); in tcache_bin_flush_large()
276 arena_decay_ticks(tsd_tsdn(tsd), locked_arena, nflush - in tcache_bin_flush_large()
286 arena_stats_large_nrequests_add(tsd_tsdn(tsd), &arena->stats, in tcache_bin_flush_large()
355 tsd_tcache_enabled_data_init(tsd_t *tsd) { in tsd_tcache_enabled_data_init() argument
357 tsd_tcache_enabled_set(tsd, opt_tcache); in tsd_tcache_enabled_data_init()
358 tsd_slow_update(tsd); in tsd_tcache_enabled_data_init()
362 tsd_tcache_data_init(tsd); in tsd_tcache_enabled_data_init()
370 tcache_init(tsd_t *tsd, tcache_t *tcache, void *avail_stack) { in tcache_init() argument
404 tsd_tcache_data_init(tsd_t *tsd) { in tsd_tcache_data_init() argument
405 tcache_t *tcache = tsd_tcachep_get_unsafe(tsd); in tsd_tcache_data_init()
411 void *avail_array = ipallocztm(tsd_tsdn(tsd), size, CACHELINE, true, in tsd_tcache_data_init()
417 tcache_init(tsd, tcache, avail_array); in tsd_tcache_data_init()
430 arena = arena_get(tsd_tsdn(tsd), 0, false); in tsd_tcache_data_init()
431 tcache_arena_associate(tsd_tsdn(tsd), tcache, arena); in tsd_tcache_data_init()
433 arena = arena_choose(tsd, NULL); in tsd_tcache_data_init()
436 tcache_arena_associate(tsd_tsdn(tsd), tcache, arena); in tsd_tcache_data_init()
446 tcache_create_explicit(tsd_t *tsd) { in tcache_create_explicit() argument
458 tcache = ipallocztm(tsd_tsdn(tsd), size, CACHELINE, true, NULL, true, in tcache_create_explicit()
464 tcache_init(tsd, tcache, in tcache_create_explicit()
466 tcache_arena_associate(tsd_tsdn(tsd), tcache, arena_ichoose(tsd, NULL)); in tcache_create_explicit()
472 tcache_flush_cache(tsd_t *tsd, tcache_t *tcache) { in tcache_flush_cache() argument
477 tcache_bin_flush_small(tsd, tcache, tbin, i, 0); in tcache_flush_cache()
487 tcache_bin_flush_large(tsd, tbin, i, 0, tcache); in tcache_flush_cache()
497 arena_prof_accum(tsd_tsdn(tsd), tcache->arena, in tcache_flush_cache()
499 prof_idump(tsd_tsdn(tsd)); in tcache_flush_cache()
504 tcache_flush(tsd_t *tsd) { in tcache_flush() argument
505 assert(tcache_available(tsd)); in tcache_flush()
506 tcache_flush_cache(tsd, tsd_tcachep_get(tsd)); in tcache_flush()
510 tcache_destroy(tsd_t *tsd, tcache_t *tcache, bool tsd_tcache) { in tcache_destroy() argument
511 tcache_flush_cache(tsd, tcache); in tcache_destroy()
512 tcache_arena_dissociate(tsd_tsdn(tsd), tcache); in tcache_destroy()
519 idalloctm(tsd_tsdn(tsd), avail_array, NULL, NULL, true, true); in tcache_destroy()
522 idalloctm(tsd_tsdn(tsd), tcache, NULL, NULL, true, true); in tcache_destroy()
528 tcache_cleanup(tsd_t *tsd) { in tcache_cleanup() argument
529 tcache_t *tcache = tsd_tcachep_get(tsd); in tcache_cleanup()
530 if (!tcache_available(tsd)) { in tcache_cleanup()
531 assert(tsd_tcache_enabled_get(tsd) == false); in tcache_cleanup()
537 assert(tsd_tcache_enabled_get(tsd)); in tcache_cleanup()
540 tcache_destroy(tsd, tcache, true); in tcache_cleanup()
573 tcaches_create_prep(tsd_t *tsd) { in tcaches_create_prep() argument
576 malloc_mutex_lock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_create_prep()
579 tcaches = base_alloc(tsd_tsdn(tsd), b0get(), sizeof(tcache_t *) in tcaches_create_prep()
594 malloc_mutex_unlock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_create_prep()
599 tcaches_create(tsd_t *tsd, unsigned *r_ind) { in tcaches_create() argument
600 witness_assert_depth(tsdn_witness_tsdp_get(tsd_tsdn(tsd)), 0); in tcaches_create()
604 if (tcaches_create_prep(tsd)) { in tcaches_create()
609 tcache_t *tcache = tcache_create_explicit(tsd); in tcaches_create()
616 malloc_mutex_lock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_create()
628 malloc_mutex_unlock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_create()
632 witness_assert_depth(tsdn_witness_tsdp_get(tsd_tsdn(tsd)), 0); in tcaches_create()
637 tcaches_elm_remove(tsd_t *tsd, tcaches_t *elm) { in tcaches_elm_remove() argument
638 malloc_mutex_assert_owner(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_elm_remove()
649 tcaches_flush(tsd_t *tsd, unsigned ind) { in tcaches_flush() argument
650 malloc_mutex_lock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_flush()
651 tcache_t *tcache = tcaches_elm_remove(tsd, &tcaches[ind]); in tcaches_flush()
652 malloc_mutex_unlock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_flush()
654 tcache_destroy(tsd, tcache, false); in tcaches_flush()
659 tcaches_destroy(tsd_t *tsd, unsigned ind) { in tcaches_destroy() argument
660 malloc_mutex_lock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_destroy()
662 tcache_t *tcache = tcaches_elm_remove(tsd, elm); in tcaches_destroy()
665 malloc_mutex_unlock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_destroy()
667 tcache_destroy(tsd, tcache, false); in tcaches_destroy()