diff --git a/include/jemalloc/internal/arena_externs.h b/include/jemalloc/internal/arena_externs.h index 0ebf5e9b..06189d56 100644 --- a/include/jemalloc/internal/arena_externs.h +++ b/include/jemalloc/internal/arena_externs.h @@ -106,8 +106,6 @@ arena_t *arena_new(tsdn_t *tsdn, unsigned ind, const arena_config_t *config); bool arena_init_huge(tsdn_t *tsdn, arena_t *a0); bool arena_ind_is_huge(unsigned ind); arena_t *arena_choose_huge(tsd_t *tsd); -size_t arena_fill_small_fresh(tsdn_t *tsdn, arena_t *arena, szind_t binind, - void **ptrs, size_t nfill, bool zero); bool arena_boot(sc_data_t *sc_data, base_t *base, bool hpa); void *arena_locality_hint(tsdn_t *tsdn, arena_t *arena, szind_t szind); void arena_cache_bin_array_register(tsdn_t *tsdn, arena_t *arena, diff --git a/src/arena.c b/src/arena.c index bc8f848e..d8bd7ae7 100644 --- a/src/arena.c +++ b/src/arena.c @@ -1084,76 +1084,6 @@ label_refill: return filled; } -size_t -arena_fill_small_fresh(tsdn_t *tsdn, arena_t *arena, szind_t binind, - void **ptrs, size_t nfill, bool zero) { - assert(binind < SC_NBINS); - const bin_info_t *bin_info = &bin_infos[binind]; - const size_t nregs = bin_info->nregs; - assert(nregs > 0); - const size_t usize = bin_info->reg_size; - - const bool manual_arena = !arena_is_auto(arena); - unsigned binshard; - bin_t *bin = bin_choose(tsdn, arena, binind, &binshard); - - size_t nslab = 0; - size_t filled = 0; - edata_t *slab = NULL; - edata_list_active_t fulls; - edata_list_active_init(&fulls); - - while (filled < nfill - && (slab = arena_slab_alloc( - tsdn, arena, binind, binshard, bin_info)) - != NULL) { - assert((size_t)edata_nfree_get(slab) == nregs); - ++nslab; - size_t batch = nfill - filled; - if (batch > nregs) { - batch = nregs; - } - assert(batch > 0); - bin_slab_reg_alloc_batch( - slab, bin_info, (unsigned)batch, &ptrs[filled]); - assert(edata_addr_get(slab) == ptrs[filled]); - if (zero) { - memset(ptrs[filled], 0, batch * usize); - } - filled += batch; - if (batch == nregs) { - if (manual_arena) { - edata_list_active_append(&fulls, slab); - } - slab = NULL; - } - } - - malloc_mutex_lock(tsdn, &bin->lock); - /* - * Only the last slab can be non-empty, and the last slab is non-empty - * iff slab != NULL. - */ - if (slab != NULL) { - bin_lower_slab(tsdn, !manual_arena, slab, bin); - } - if (manual_arena) { - edata_list_active_concat(&bin->slabs_full, &fulls); - } - assert(edata_list_active_empty(&fulls)); - if (config_stats) { - bin->stats.nslabs += nslab; - bin->stats.curslabs += nslab; - bin->stats.nmalloc += filled; - bin->stats.nrequests += filled; - bin->stats.curregs += filled; - } - malloc_mutex_unlock(tsdn, &bin->lock); - - arena_decay_tick(tsdn, arena); - return filled; -} - static void * arena_malloc_small(tsdn_t *tsdn, arena_t *arena, szind_t binind, bool zero) { assert(binind < SC_NBINS);