mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-07-04 12:57:15 +03:00
Add opt.bin_shards to specify number of bin shards.
The option uses the same format as "slab_sizes" to specify number of shards for each bin size.
This commit is contained in:
parent
37b8913925
commit
3f9f2833f6
5 changed files with 81 additions and 31 deletions
|
|
@ -8,9 +8,7 @@
|
|||
#include "jemalloc/internal/sc.h"
|
||||
|
||||
#define BIN_SHARDS_MAX (1 << EXTENT_BITS_BINSHARD_WIDTH)
|
||||
|
||||
extern unsigned opt_bin_shard_maxszind;
|
||||
extern unsigned opt_n_bin_shards;
|
||||
#define N_BIN_SHARDS_DEFAULT 1
|
||||
|
||||
/*
|
||||
* A bin contains a set of extents that are currently being used for slab
|
||||
|
|
@ -93,8 +91,10 @@ struct bins_s {
|
|||
bin_t *bin_shards;
|
||||
};
|
||||
|
||||
void bin_infos_init(sc_data_t *sc_data, bin_info_t bin_infos[SC_NBINS]);
|
||||
void bin_boot();
|
||||
void bin_shard_sizes_boot(unsigned bin_shards[SC_NBINS]);
|
||||
bool bin_update_shard_size(unsigned bin_shards[SC_NBINS], size_t start_size,
|
||||
size_t end_size, size_t nshards);
|
||||
void bin_boot(sc_data_t *sc_data, unsigned bin_shard_sizes[SC_NBINS]);
|
||||
|
||||
/* Initializes a bin to empty. Returns true on error. */
|
||||
bool bin_init(bin_t *bin);
|
||||
|
|
|
|||
|
|
@ -128,10 +128,6 @@ struct extent_s {
|
|||
#define EXTENT_BITS_BINSHARD_SHIFT (EXTENT_BITS_NFREE_WIDTH + EXTENT_BITS_NFREE_SHIFT)
|
||||
#define EXTENT_BITS_BINSHARD_MASK MASK(EXTENT_BITS_BINSHARD_WIDTH, EXTENT_BITS_BINSHARD_SHIFT)
|
||||
|
||||
/* Will make dynamic options. */
|
||||
#define OPT_N_BIN_SHARDS (1)
|
||||
#define OPT_BIN_SHARD_MAXSZIND (0)
|
||||
|
||||
#define EXTENT_BITS_SN_SHIFT (EXTENT_BITS_BINSHARD_WIDTH + EXTENT_BITS_BINSHARD_SHIFT)
|
||||
#define EXTENT_BITS_SN_MASK (UINT64_MAX << EXTENT_BITS_SN_SHIFT)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue