summaryrefslogtreecommitdiffstats
path: root/include/jemalloc
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2016-11-22 07:23:03 (GMT)
committerJason Evans <jasone@canonware.com>2016-12-27 01:59:42 (GMT)
commit411697adcda2fd75e135cdcdafb95f2bd295dc7f (patch)
tree022309449fe560f680a218c429db854e77a7c392 /include/jemalloc
parentc1baa0a9b7b05ebf98221dc7deb12c28e170a399 (diff)
downloadjemalloc-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 'include/jemalloc')
-rw-r--r--include/jemalloc/internal/arena.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/jemalloc/internal/arena.h b/include/jemalloc/internal/arena.h
index d6b1a2b..afa8984 100644
--- a/include/jemalloc/internal/arena.h
+++ b/include/jemalloc/internal/arena.h
@@ -232,6 +232,15 @@ struct arena_s {
void *extent_hooks_pun;
};
+ /*
+ * Next extent size class in a growing series to use when satisfying a
+ * request via the extent hooks (only if !config_munmap). 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.
+ */
+ pszind_t extent_grow_next;
+
/* Cache of extent structures that were allocated via base_alloc(). */
ql_head(extent_t) extent_cache;
malloc_mutex_t extent_cache_mtx;