server-skynet-source-3rd-je.../src
Jason Evans d419bb09ef 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:50:05 -07:00
..
arena.c Fix and simplify decay-based purging. 2016-10-11 15:50:05 -07:00
atomic.c Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
base.c Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
bitmap.c Reduce differences between alternative bitmap implementations. 2016-04-06 10:38:47 -07:00
chunk_dss.c Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
chunk_mmap.c Fix potential VM map fragmentation regression. 2016-06-07 14:21:21 -07:00
chunk.c Fix a valgrind regression in chunk_recycle() 2016-09-26 10:30:57 -07:00
ckh.c Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
ctl.c Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
extent.c Allow const keys for lookup 2015-11-09 15:48:05 -08:00
hash.c Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
huge.c Fix opt_zero-triggered in-place huge reallocation zeroing. 2016-06-08 10:10:08 -07:00
jemalloc.c Simplify run quantization. 2016-10-06 15:58:38 -07:00
mb.c Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
mutex.c Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
nstime.c Do not advance decay epoch when time goes backwards. 2016-10-10 22:31:37 -07:00
pages.c Close file descriptor after reading "/proc/sys/vm/overcommit_memory". 2016-09-26 15:58:44 -07:00
prng.c Refactor prng* from cpp macros into inline functions. 2016-02-19 20:29:06 -08:00
prof.c Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
quarantine.c Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
rtree.c Optimize rtree_get(). 2016-03-22 17:54:35 -07:00
stats.c Add the stats.retained and stats.arenas.<i>.retained statistics. 2016-05-03 22:11:35 -07:00
tcache.c Resolve bootstrapping issues when embedded in FreeBSD libc. 2016-05-10 22:51:33 -07:00
ticker.c Implement ticker. 2016-02-19 20:29:06 -08:00
tsd.c Use TSDN_NULL rather than NULL as appropriate. 2016-10-04 15:56:56 -07:00
util.c Fix -Wunreachable-code warning in malloc_vsnprintf(). 2016-03-26 23:24:33 -07:00
valgrind.c Optimize Valgrind integration. 2014-04-15 16:49:57 -07:00
witness.c Mangle tested functions as n_witness_* rather than witness_*_impl. 2016-05-11 16:14:20 -07:00
zone.c Formatting fixes. 2016-09-26 11:01:59 -07:00