diff options
| author | Jason Evans <je@fb.com> | 2015-07-28 11:28:19 -0400 |
|---|---|---|
| committer | Jason Evans <je@fb.com> | 2015-08-03 21:49:02 -0700 |
| commit | b49a334a645b854dbb1649f15c38d646fee66738 (patch) | |
| tree | 221f5a09618cadbfd0b2570d802ca68971dec440 /ChangeLog | |
| parent | d059b9d6a1ac3e7f834260ba001bf0d1599fb0bf (diff) | |
| download | platform_external_jemalloc_new-b49a334a645b854dbb1649f15c38d646fee66738.tar.gz platform_external_jemalloc_new-b49a334a645b854dbb1649f15c38d646fee66738.tar.bz2 platform_external_jemalloc_new-b49a334a645b854dbb1649f15c38d646fee66738.zip | |
Generalize chunk management hooks.
Add the "arena.<i>.chunk_hooks" mallctl, which replaces and expands on
the "arena.<i>.chunk.{alloc,dalloc,purge}" mallctls. The chunk hooks
allow control over chunk allocation/deallocation, decommit/commit,
purging, and splitting/merging, such that the application can rely on
jemalloc's internal chunk caching and retaining functionality, yet
implement a variety of chunk management mechanisms and policies.
Merge the chunks_[sz]ad_{mmap,dss} red-black trees into
chunks_[sz]ad_retained. This slightly reduces how hard jemalloc tries
to honor the dss precedence setting; prior to this change the precedence
setting was also consulted when recycling chunks.
Fix chunk purging. Don't purge chunks in arena_purge_stashed(); instead
deallocate them in arena_unstash_purged(), so that the dirty memory
linkage remains valid until after the last time it is used.
This resolves #176 and #201.
Diffstat (limited to 'ChangeLog')
| -rw-r--r-- | ChangeLog | 3 |
1 files changed, 1 insertions, 2 deletions
@@ -37,8 +37,7 @@ brevity. Much more detail can be found in the git revision history: "opt.prof_thread_active_init", "prof.thread_active_init", and "thread.prof.active" mallctls. - Add support for per arena application-specified chunk allocators, configured - via the "arena<i>.chunk.alloc", "arena<i>.chunk.dalloc", and - "arena.<i>.chunk.purge" mallctls. + via the "arena.<i>.chunk_hooks" mallctl. - Refactor huge allocation to be managed by arenas, so that arenas now function as general purpose independent allocators. This is important in the context of user-specified chunk allocators, aside from the scalability |
