Lines Matching refs:tsd
37 tcache_event_hard(tsd_t *tsd, tcache_t *tcache) in tcache_event_hard() argument
48 tcache_bin_flush_small(tsd, tcache, tbin, binind, in tcache_event_hard()
52 tcache_bin_flush_large(tsd, tbin, binind, tbin->ncached in tcache_event_hard()
92 tcache_bin_flush_small(tsd_t *tsd, tcache_t *tcache, tcache_bin_t *tbin, in tcache_bin_flush_small() argument
103 arena = arena_choose(tsd, NULL); in tcache_bin_flush_small()
113 if (arena_prof_accum(tsd_tsdn(tsd), arena, in tcache_bin_flush_small()
115 prof_idump(tsd_tsdn(tsd)); in tcache_bin_flush_small()
119 malloc_mutex_lock(tsd_tsdn(tsd), &bin->lock); in tcache_bin_flush_small()
137 arena_dalloc_bin_junked_locked(tsd_tsdn(tsd), in tcache_bin_flush_small()
150 malloc_mutex_unlock(tsd_tsdn(tsd), &bin->lock); in tcache_bin_flush_small()
151 arena_decay_ticks(tsd_tsdn(tsd), bin_arena, nflush - ndeferred); in tcache_bin_flush_small()
159 malloc_mutex_lock(tsd_tsdn(tsd), &bin->lock); in tcache_bin_flush_small()
163 malloc_mutex_unlock(tsd_tsdn(tsd), &bin->lock); in tcache_bin_flush_small()
174 tcache_bin_flush_large(tsd_t *tsd, tcache_bin_t *tbin, szind_t binind, in tcache_bin_flush_large() argument
185 arena = arena_choose(tsd, NULL); in tcache_bin_flush_large()
196 malloc_mutex_lock(tsd_tsdn(tsd), &locked_arena->lock); in tcache_bin_flush_large()
219 arena_dalloc_large_junked_locked(tsd_tsdn(tsd), in tcache_bin_flush_large()
232 malloc_mutex_unlock(tsd_tsdn(tsd), &locked_arena->lock); in tcache_bin_flush_large()
234 prof_idump(tsd_tsdn(tsd)); in tcache_bin_flush_large()
235 arena_decay_ticks(tsd_tsdn(tsd), locked_arena, nflush - in tcache_bin_flush_large()
243 malloc_mutex_lock(tsd_tsdn(tsd), &arena->lock); in tcache_bin_flush_large()
248 malloc_mutex_unlock(tsd_tsdn(tsd), &arena->lock); in tcache_bin_flush_large()
305 tcache_get_hard(tsd_t *tsd) in tcache_get_hard() argument
310 if (tsd_nominal(tsd)) in tcache_get_hard()
314 arena = arena_choose(tsd, NULL); in tcache_get_hard()
317 return (tcache_create(tsd_tsdn(tsd), arena)); in tcache_get_hard()
361 tcache_destroy(tsd_t *tsd, tcache_t *tcache) in tcache_destroy() argument
366 arena = arena_choose(tsd, NULL); in tcache_destroy()
367 tcache_arena_dissociate(tsd_tsdn(tsd), tcache, arena); in tcache_destroy()
371 tcache_bin_flush_small(tsd, tcache, tbin, i, 0); in tcache_destroy()
375 malloc_mutex_lock(tsd_tsdn(tsd), &bin->lock); in tcache_destroy()
377 malloc_mutex_unlock(tsd_tsdn(tsd), &bin->lock); in tcache_destroy()
383 tcache_bin_flush_large(tsd, tbin, i, 0, tcache); in tcache_destroy()
386 malloc_mutex_lock(tsd_tsdn(tsd), &arena->lock); in tcache_destroy()
390 malloc_mutex_unlock(tsd_tsdn(tsd), &arena->lock); in tcache_destroy()
395 arena_prof_accum(tsd_tsdn(tsd), arena, tcache->prof_accumbytes)) in tcache_destroy()
396 prof_idump(tsd_tsdn(tsd)); in tcache_destroy()
398 idalloctm(tsd_tsdn(tsd), tcache, NULL, true, true); in tcache_destroy()
402 tcache_cleanup(tsd_t *tsd) in tcache_cleanup() argument
409 if ((tcache = tsd_tcache_get(tsd)) != NULL) { in tcache_cleanup()
410 tcache_destroy(tsd, tcache); in tcache_cleanup()
411 tsd_tcache_set(tsd, NULL); in tcache_cleanup()
416 tcache_enabled_cleanup(tsd_t *tsd) in tcache_enabled_cleanup() argument
451 tcaches_create_prep(tsd_t *tsd) { in tcaches_create_prep() argument
454 malloc_mutex_lock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_create_prep()
457 tcaches = base_alloc(tsd_tsdn(tsd), sizeof(tcache_t *) * in tcaches_create_prep()
472 malloc_mutex_unlock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_create_prep()
477 tcaches_create(tsd_t *tsd, unsigned *r_ind) { in tcaches_create() argument
483 if (tcaches_create_prep(tsd)) { in tcaches_create()
488 arena = arena_ichoose(tsd, NULL); in tcaches_create()
493 tcache = tcache_create(tsd_tsdn(tsd), arena); in tcaches_create()
499 malloc_mutex_lock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_create()
511 malloc_mutex_unlock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_create()
515 malloc_mutex_assert_not_owner(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_create()
520 tcaches_elm_flush(tsd_t *tsd, tcaches_t *elm) { in tcaches_elm_flush() argument
521 malloc_mutex_assert_owner(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_elm_flush()
526 tcache_destroy(tsd, elm->tcache); in tcaches_elm_flush()
531 tcaches_flush(tsd_t *tsd, unsigned ind) { in tcaches_flush() argument
532 malloc_mutex_lock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_flush()
533 tcaches_elm_flush(tsd, &tcaches[ind]); in tcaches_flush()
534 malloc_mutex_unlock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_flush()
538 tcaches_destroy(tsd_t *tsd, unsigned ind) { in tcaches_destroy() argument
541 malloc_mutex_lock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_destroy()
543 tcaches_elm_flush(tsd, elm); in tcaches_destroy()
546 malloc_mutex_unlock(tsd_tsdn(tsd), &tcaches_mtx); in tcaches_destroy()