diff options
author | Jason Evans <jasone@canonware.com> | 2016-11-22 07:23:03 (GMT) |
---|---|---|
committer | Jason Evans <jasone@canonware.com> | 2016-12-27 01:59:42 (GMT) |
commit | 411697adcda2fd75e135cdcdafb95f2bd295dc7f (patch) | |
tree | 022309449fe560f680a218c429db854e77a7c392 /src/arena.c | |
parent | c1baa0a9b7b05ebf98221dc7deb12c28e170a399 (diff) | |
download | jemalloc-411697adcda2fd75e135cdcdafb95f2bd295dc7f.zip jemalloc-411697adcda2fd75e135cdcdafb95f2bd295dc7f.tar.gz jemalloc-411697adcda2fd75e135cdcdafb95f2bd295dc7f.tar.bz2 |
Use exponential series to size extents.
If virtual memory is retained, allocate extents such that their sizes
form an exponentially growing series. This limits the number of
disjoint virtual memory ranges so that extent merging can be effective
even if multiple arenas' extent allocation requests are highly
interleaved.
This resolves #462.
Diffstat (limited to 'src/arena.c')
-rw-r--r-- | src/arena.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/arena.c b/src/arena.c index 73fea52..c358704 100644 --- a/src/arena.c +++ b/src/arena.c @@ -1686,6 +1686,9 @@ arena_new(tsdn_t *tsdn, unsigned ind) arena->extent_hooks = (extent_hooks_t *)&extent_hooks_default; + if (!config_munmap) + arena->extent_grow_next = psz2ind(HUGEPAGE); + ql_new(&arena->extent_cache); if (malloc_mutex_init(&arena->extent_cache_mtx, "arena_extent_cache", WITNESS_RANK_ARENA_EXTENT_CACHE)) |