server-skynet-source-3rd-je.../include/jemalloc/internal
Dave Watson 25f7bbcf28 Fix long spinning in rtree_node_init
rtree_node_init spinlocks the node, allocates, and then sets the node.
This is under heavy contention at the top of the tree if many threads
start to allocate at the same time.

Instead, take a per-rtree sleeping mutex to reduce spinning.  Tested
both pthreads and osx OSSpinLock, and both reduce spinning adequately

Previous benchmark time:
./ttest1 500 100
~15s

New benchmark time:
./ttest1 500 100
.57s
2016-11-02 20:30:53 -07:00
..
arena.h Remove ratio-based purging. 2016-10-12 10:40:27 -07:00
assert.h Tweak code to allow compilation of concatenated src/*.c sources. 2015-11-12 11:06:41 -08:00
atomic.h Define 64-bits atomics unconditionally 2016-06-09 23:17:39 +09:00
base.h Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
bitmap.h Move slabs out of chunks. 2016-06-05 20:42:23 -07:00
ckh.h Do not (recursively) allocate within tsd_fetch(). 2016-10-20 23:59:12 -07:00
ctl.h Remove ratio-based purging. 2016-10-12 10:40:27 -07:00
extent_dss.h Make dss operations lockless. 2016-10-13 15:37:00 -07:00
extent_mmap.h Rename most remaining *chunk* APIs to *extent*. 2016-06-05 20:42:23 -07:00
extent.h Make dss operations lockless. 2016-10-13 15:37:00 -07:00
hash.h typecast address to pointer to byte to avoid unaligned memory access error 2016-03-10 22:49:05 -08:00
jemalloc_internal_decls.h Add os_unfair_lock support. 2016-11-02 18:09:45 -07:00
jemalloc_internal_defs.h.in Do not use syscall(2) on OS X 10.12 (deprecated). 2016-11-02 19:18:33 -07:00
jemalloc_internal_macros.h Use KQU() rather than QU() where applicable. 2014-05-28 21:17:42 -07:00
jemalloc_internal.h.in Avoid negation of unsigned numbers. 2016-10-27 21:26:33 -07:00
large.h Make dss operations lockless. 2016-10-13 15:37:00 -07:00
mb.h Use TSDN_NULL rather than NULL as appropriate. 2016-05-12 21:07:08 -07:00
mutex.h Add os_unfair_lock support. 2016-11-02 18:09:45 -07:00
nstime.h Do not advance decay epoch when time goes backwards. 2016-10-10 22:15:10 -07:00
pages.h Move *PAGE* definitions to pages.h. 2016-06-03 12:27:41 -07:00
ph.h Fix a style nit. 2016-04-12 23:18:25 -07:00
private_namespace.sh Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
private_symbols.txt Fix/refactor zone allocator integration code. 2016-11-02 18:06:40 -07:00
private_unnamespace.sh Refactor to support more varied testing. 2013-12-03 22:06:59 -08:00
prng.h Implement cache-oblivious support for huge size classes. 2016-06-03 12:27:41 -07:00
prof.h Do not (recursively) allocate within tsd_fetch(). 2016-10-20 23:59:12 -07:00
public_namespace.sh Fix name mangling for stress tests. 2014-01-16 17:38:01 -08:00
public_unnamespace.sh Fix name mangling for stress tests. 2014-01-16 17:38:01 -08:00
ql.h Style and spelling fixes. 2014-12-08 16:34:04 -08:00
qr.h Style and spelling fixes. 2014-12-08 16:34:04 -08:00
rb.h Remove rbt_nil 2016-02-23 18:09:25 -08:00
rtree.h Fix long spinning in rtree_node_init 2016-11-02 20:30:53 -07:00
size_classes.sh Relax NBINS constraint (max 255 --> max 256). 2016-06-05 20:42:24 -07:00
smoothstep.h Implement smoothstep table generation. 2016-02-19 20:56:15 -08:00
smoothstep.sh Implement smoothstep table generation. 2016-02-19 20:56:15 -08:00
spin.h Add/use adaptive spinning. 2016-10-13 14:55:39 -07:00
stats.h Remove all vestiges of chunks. 2016-10-12 11:55:43 -07:00
tcache.h Do not (recursively) allocate within tsd_fetch(). 2016-10-20 23:59:12 -07:00
ticker.h Implement ticker. 2016-02-19 20:29:06 -08:00
tsd.h Do not (recursively) allocate within tsd_fetch(). 2016-10-20 23:59:12 -07:00
util.h Check for __builtin_unreachable at configure time 2016-07-07 13:28:44 -07:00
witness.h Fix long spinning in rtree_node_init 2016-11-02 20:30:53 -07:00