server-skynet-source-3rd-je.../include/jemalloc
Jason Evans 8d0e04d42f Refactor rtree to be lock-free.
Recent huge allocation refactoring associates huge allocations with
arenas, but it remains necessary to quickly look up huge allocation
metadata during reallocation/deallocation.  A global radix tree remains
a good solution to this problem, but locking would have become the
primary bottleneck after (upcoming) migration of chunk management from
global to per arena data structures.

This lock-free implementation uses double-checked reads to traverse the
tree, so that in the steady state, each read or write requires only a
single atomic operation.

This implementation also assures that no more than two tree levels
actually exist, through a combination of careful virtual memory
allocation which makes large sparse nodes cheap, and skipping the root
node on x64 (possible because the top 16 bits are all 0 in practice).
2015-02-04 16:51:53 -08:00
..
internal Refactor rtree to be lock-free. 2015-02-04 16:51:53 -08:00
jemalloc_defs.h.in Remove the *allocm() API, which is superceded by the *allocx() API. 2014-04-14 22:32:31 -07:00
jemalloc_macros.h.in Add missing header includes in jemalloc/jemalloc.h . 2014-10-05 12:05:37 -07:00
jemalloc_mangle.sh Fix name mangling for stress tests. 2014-01-16 17:38:01 -08:00
jemalloc_protos.h.in Add support for sized deallocation. 2014-09-08 17:34:24 -07:00
jemalloc_rename.sh Fix name mangling for stress tests. 2014-01-16 17:38:01 -08:00
jemalloc_typedefs.h.in Attempt to expand huge allocations in-place. 2014-10-05 14:47:01 -07:00
jemalloc.sh Move typedefs from jemalloc_protos.h.in to jemalloc_typedefs.h.in. 2014-09-07 19:55:03 -07:00