server-skynet-source-3rd-je.../include/jemalloc/internal
Jason Evans b4b4a77848 Fix and simplify decay-based purging.
Simplify decay-based purging attempts to only be triggered when the
epoch is advanced, rather than every time purgeable memory increases.
In a correctly functioning system (not previously the case; see below),
this only causes a behavior difference if during subsequent purge
attempts the least recently used (LRU) purgeable memory extent is
initially too large to be purged, but that memory is reused between
attempts and one or more of the next LRU purgeable memory extents are
small enough to be purged.  In practice this is an arbitrary behavior
change that is within the set of acceptable behaviors.

As for the purging fix, assure that arena->decay.ndirty is recorded
*after* the epoch advance and associated purging occurs.  Prior to this
fix, it was possible for purging during epoch advance to cause a
substantially underrepresentative (arena->ndirty - arena->decay.ndirty),
i.e. the number of dirty pages attributed to the current epoch was too
low, and a series of unintended purges could result.  This fix is also
relevant in the context of the simplification described above, but the
bug's impact would be limited to over-purging at epoch advances.
2016-10-11 15:30:01 -07:00
..
arena.h Fix and simplify decay-based purging. 2016-10-11 15:30:01 -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
chunk.h Rename most remaining *chunk* APIs to *extent*. 2016-06-05 20:42:23 -07:00
ckh.h Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
ctl.h Rename huge to large. 2016-06-05 20:42:23 -07:00
extent_dss.h Rename most remaining *chunk* APIs to *extent*. 2016-06-05 20:42:23 -07:00
extent_mmap.h Rename most remaining *chunk* APIs to *extent*. 2016-06-05 20:42:23 -07:00
extent.h Fix extent_{before,last,past}() to return page-aligned results. 2016-09-23 12:21:34 -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 Refine nstime_update(). 2016-10-10 10:33:59 -07:00
jemalloc_internal_defs.h.in Refine nstime_update(). 2016-10-10 10:33:59 -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 Fix size class overflow bugs. 2016-10-03 14:18:55 -07:00
large.h Remove a stray memset(), and fix a junk filling test regression. 2016-06-05 21:00:02 -07:00
mb.h Use TSDN_NULL rather than NULL as appropriate. 2016-05-12 21:07:08 -07:00
mutex.h Add rtree element witnesses. 2016-06-03 12:27:41 -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 Do not advance decay epoch when time goes backwards. 2016-10-10 22:15:10 -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 Add a missing prof_alloc_rollback() call. 2016-06-05 20:42:24 -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 Add rtree lookup path caching. 2016-06-05 20:59:57 -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
stats.h Miscellaneous s/chunk/extent/ updates. 2016-06-05 20:42:24 -07:00
tcache.h Make tsd cleanup functions optional, remove noop cleanup functions. 2016-06-05 20:42:24 -07:00
ticker.h Implement ticker. 2016-02-19 20:29:06 -08:00
tsd.h Avoid self assignment in tsd_set(). 2016-09-23 12:21:34 -07:00
util.h Check for __builtin_unreachable at configure time 2016-07-07 13:28:44 -07:00
witness.h Make tsd cleanup functions optional, remove noop cleanup functions. 2016-06-05 20:42:24 -07:00