summaryrefslogtreecommitdiffstats
path: root/include/jemalloc/internal/pages.h
Commit message (Collapse)AuthorAgeFilesLines
* Implement opt.metadata_thpQi Wang2017-08-111-0/+3
| | | | | This option enables transparent huge page for base allocators (require MADV_HUGEPAGE support).
* Header refactoring: pages.h - unify and remove from catchall.David Goldblatt2017-04-251-0/+71
|
* Break up headers into constituent partsDavid Goldblatt2017-01-121-85/+0
| | | | | | | | | | This is part of a broader change to make header files better represent the dependencies between one another (see https://github.com/jemalloc/jemalloc/issues/533). It breaks up component headers into smaller parts that can be made to have a simpler dependency graph. For the autogenerated headers (smoothstep.h and size_classes.h), no splitting was necessary, so I didn't add support to emit multiple headers.
* Refactor purging and splitting/merging.Jason Evans2016-12-271-1/+34
| | | | | | | | | | | | | | Split purging into lazy and forced variants. Use the forced variant for zeroing dss. Add support for NULL function pointers as an opt-out mechanism for the dalloc, commit, decommit, purge_lazy, purge_forced, split, and merge fields of extent_hooks_t. Add short-circuiting checks in large_ralloc_no_move_{shrink,expand}() so that no attempt is made if splitting/merging is not supported. This resolves #268.
* Add huge page configuration and pages_[no}huge().Jason Evans2016-12-271-2/+12
| | | | | | | | Add the --with-lg-hugepage configure option, but automatically configure LG_HUGEPAGE even if it isn't specified. Add the pages_[no]huge() functions, which toggle huge page state via madvise(..., MADV_[NO]HUGEPAGE) calls.
* Move *PAGE* definitions to pages.h.Jason Evans2016-06-031-0/+15
|
* Modify pages_map() to support mapping uncommitted virtual memory.Jason Evans2016-05-061-2/+3
| | | | | | | | | | | If the OS overcommits: - Commit all mappings in pages_map() regardless of whether the caller requested committed memory. - Linux-specific: Specify MAP_NORESERVE to avoid unfortunate interactions with heuristic overcommit mode during fork(2). This resolves #193.
* Generalize chunk management hooks.Jason Evans2015-08-041-0/+26
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.