Lines Matching refs:bin
15 #define SC(index, lg_grp, lg_delta, ndelta, bin, lg_delta_lookup) \
16 B2S_bin_##bin((ZU(1)<<lg_grp) + (ZU(ndelta)<<lg_delta))
33 #define SC(index, lg_grp, lg_delta, ndelta, bin, lg_delta_lookup) \
57 arena_run_t *run, arena_bin_t *bin);
59 arena_run_t *run, arena_bin_t *bin);
969 binind = arena_bin_index(arena, run->bin);
1268 size_t binind = arena_bin_index(arena, run->bin);
1394 arena_bin_runs_first(arena_bin_t *bin)
1396 arena_chunk_map_t *mapelm = arena_run_tree_first(&bin->runs);
1414 arena_bin_runs_insert(arena_bin_t *bin, arena_run_t *run)
1420 assert(arena_run_tree_search(&bin->runs, mapelm) == NULL);
1422 arena_run_tree_insert(&bin->runs, mapelm);
1426 arena_bin_runs_remove(arena_bin_t *bin, arena_run_t *run)
1432 assert(arena_run_tree_search(&bin->runs, mapelm) != NULL);
1434 arena_run_tree_remove(&bin->runs, mapelm);
1438 arena_bin_nonfull_run_tryget(arena_bin_t *bin)
1440 arena_run_t *run = arena_bin_runs_first(bin);
1442 arena_bin_runs_remove(bin, run);
1444 bin->stats.reruns++;
1450 arena_bin_nonfull_run_get(arena_t *arena, arena_bin_t *bin)
1457 run = arena_bin_nonfull_run_tryget(bin);
1462 binind = arena_bin_index(arena, bin);
1466 malloc_mutex_unlock(&bin->lock);
1475 run->bin = bin;
1482 malloc_mutex_lock(&bin->lock);
1485 bin->stats.nruns++;
1486 bin->stats.curruns++;
1493 * sufficient memory available while this one dropped bin->lock above,
1496 run = arena_bin_nonfull_run_tryget(bin);
1503 /* Re-fill bin->runcur, then call arena_run_reg_alloc(). */
1505 arena_bin_malloc_hard(arena_t *arena, arena_bin_t *bin)
1512 binind = arena_bin_index(arena, bin);
1514 bin->runcur = NULL;
1515 run = arena_bin_nonfull_run_get(arena, bin);
1516 if (bin->runcur != NULL && bin->runcur->nfree > 0) {
1519 * bin lock in arena_bin_nonfull_run_get().
1521 assert(bin->runcur->nfree > 0);
1522 ret = arena_run_reg_alloc(bin->runcur, bin_info);
1528 * it may have pulled run from the bin's run tree.
1536 arena_dalloc_bin_run(arena, chunk, run, bin);
1538 arena_bin_lower_run(arena, chunk, run, bin);
1546 bin->runcur = run;
1548 assert(bin->runcur->nfree > 0);
1550 return (arena_run_reg_alloc(bin->runcur, bin_info));
1558 arena_bin_t *bin;
1566 bin = &arena->bins[binind];
1567 malloc_mutex_lock(&bin->lock);
1570 if ((run = bin->runcur) != NULL && run->nfree > 0)
1573 ptr = arena_bin_malloc_hard(arena, bin);
1584 bin->stats.allocated += i * arena_bin_info[binind].reg_size;
1585 bin->stats.nmalloc += i;
1586 bin->stats.nrequests += tbin->tstats.nrequests;
1587 bin->stats.nfills++;
1590 malloc_mutex_unlock(&bin->lock);
1699 arena_bin_t *bin;
1705 bin = &arena->bins[binind];
1708 malloc_mutex_lock(&bin->lock);
1709 if ((run = bin->runcur) != NULL && run->nfree > 0)
1712 bin);
1715 malloc_mutex_unlock(&bin->lock);
1720 bin->stats.allocated += size;
1721 bin->stats.nmalloc++;
1722 bin->stats.nrequests++;
1724 malloc_mutex_unlock(&bin->lock);
1870 arena_bin_t *bin)
1873 /* Dissociate run from bin. */
1874 if (run == bin->runcur)
1875 bin->runcur = NULL;
1877 size_t binind = arena_bin_index(chunk->arena, bin);
1886 arena_bin_runs_remove(bin, run);
1893 arena_bin_t *bin)
1899 assert(run != bin->runcur);
1900 assert(arena_run_tree_search(&bin->runs,
1904 binind = arena_bin_index(chunk->arena, run->bin);
1907 malloc_mutex_unlock(&bin->lock);
1937 malloc_mutex_lock(&bin->lock);
1939 bin->stats.curruns--;
1944 arena_bin_t *bin)
1948 * Make sure that if bin->runcur is non-NULL, it refers to the lowest
1952 if ((uintptr_t)run < (uintptr_t)bin->runcur) {
1954 if (bin->runcur->nfree > 0)
1955 arena_bin_runs_insert(bin, bin->runcur);
1956 bin->runcur = run;
1958 bin->stats.reruns++;
1960 arena_bin_runs_insert(bin, run);
1969 arena_bin_t *bin;
1976 bin = run->bin;
1987 arena_dissociate_bin_run(chunk, run, bin);
1988 arena_dalloc_bin_run(arena, chunk, run, bin);
1989 } else if (run->nfree == 1 && run != bin->runcur)
1990 arena_bin_lower_run(arena, chunk, run, bin);
1993 bin->stats.allocated -= size;
1994 bin->stats.ndalloc++;
2003 arena_bin_t *bin;
2007 bin = run->bin;
2008 malloc_mutex_lock(&bin->lock);
2010 malloc_mutex_unlock(&bin->lock);
2380 arena_bin_t *bin = &arena->bins[i];
2382 malloc_mutex_lock(&bin->lock);
2383 bstats[i].allocated += bin->stats.allocated;
2384 bstats[i].nmalloc += bin->stats.nmalloc;
2385 bstats[i].ndalloc += bin->stats.ndalloc;
2386 bstats[i].nrequests += bin->stats.nrequests;
2388 bstats[i].nfills += bin->stats.nfills;
2389 bstats[i].nflushes += bin->stats.nflushes;
2391 bstats[i].nruns += bin->stats.nruns;
2392 bstats[i].reruns += bin->stats.reruns;
2393 bstats[i].curruns += bin->stats.curruns;
2394 malloc_mutex_unlock(&bin->lock);
2402 arena_bin_t *bin;
2442 bin = &arena->bins[i];
2443 if (malloc_mutex_init(&bin->lock))
2445 bin->runcur = NULL;
2446 arena_run_tree_new(&bin->runs);
2448 memset(&bin->stats, 0, sizeof(malloc_bin_stats_t));
2594 #define SC(index, lg_grp, lg_delta, ndelta, bin, lg_delta_lookup) \
2595 BIN_INFO_INIT_bin_##bin(index, (ZU(1)<<lg_grp) + (ZU(ndelta)<<lg_delta))