summaryrefslogtreecommitdiffstats
path: root/Makefile.in
Commit message (Collapse)AuthorAgeFilesLines
* Add -dynamic for integration and stress tests with Cray compiler wrappersElliot Ronaghan2016-07-071-2/+3
| | | | | | | | | | | | | | | | | | | Cray systems come with compiler wrappers to simplify building parallel applications. CC is the C++ wrapper, and cc is the C wrapper. The wrappers call the base {Cray, Intel, PGI, or GNU} compiler with vendor specific flags. The "Programming Environment" (prgenv) that's currently loaded determines the base compiler. e.g. compiling with gnu looks something like: module load PrgEnv-gnu cc hello.c On most systems the wrappers defaults to `-static` mode, which causes them to only look for static libraries, and not for any dynamic ones (even if the dynamic version was explicitly listed.) The integration and stress tests expect to be using the .so, so we have to run the with -dynamic so that wrapper will find/use the .so.
* Rename most remaining *chunk* APIs to *extent*.Jason Evans2016-06-061-5/+5
|
* Rename huge to large.Jason Evans2016-06-061-1/+1
|
* Use huge size class infrastructure for large size classes.Jason Evans2016-06-061-1/+0
|
* Replace extent_tree_szad_* with extent_heap_*.Jason Evans2016-06-031-0/+1
|
* Remove quarantine support.Jason Evans2016-05-131-2/+0
|
* Remove Valgrind support.Jason Evans2016-05-131-4/+0
|
* Fix tsd bootstrapping for a0malloc().Jason Evans2016-05-071-0/+1
|
* Link against librt for clock_gettime(2) if glibc < 2.17.Jason Evans2016-05-041-4/+3
| | | | | | | Link libjemalloc against librt if clock_gettime(2) is in librt rather than libc, as for versions of glibc prior to 2.17. This resolves #349.
* Fix fork()-related lock rank ordering reversals.Jason Evans2016-04-261-0/+1
|
* Implement the arena.<i>.reset mallctl.Jason Evans2016-04-221-1/+3
| | | | | | | This makes it possible to discard all of an arena's allocations in a single operation. This resolves #146.
* Add witness, a simple online locking validator.Jason Evans2016-04-141-1/+3
| | | | This resolves #358.
* Refactor/fix ph.Jason Evans2016-04-111-1/+0
| | | | | | | | | | | | | | | | | | | | | Refactor ph to support configurable comparison functions. Use a cpp macro code generation form equivalent to the rb macros so that pairing heaps can be used for both run heaps and chunk heaps. Remove per node parent pointers, and instead use leftmost siblings' prev pointers to track parents. Fix multi-pass sibling merging to iterate over intermediate results using a FIFO, rather than a LIFO. Use this fixed sibling merging implementation for both merge phases of the auxiliary twopass algorithm (first merging the aux list, then replacing the root with its merged children). This fixes both degenerate merge behavior and the potential for deep recursion. This regression was introduced by 6bafa6678fc36483e638f1c3a0a9bf79fb89bfc9 (Pairing heap). This resolves #371.
* Unittest for pairing heapDave Watson2016-03-081-0/+1
|
* Pairing heapDave Watson2016-03-081-0/+1
| | | | | | | | | | | | | | | Initial implementation of a twopass pairing heap with aux list. Research papers linked in comments. Where search/nsearch/last aren't needed, this gives much faster first(), delete(), and insert(). Insert is O(1), and first/delete don't have to walk the whole tree. Also tested rb_old with parent pointers - it was better than the current rb.h for memory loads, but still much worse than a pairing heap. An array-based heap would be much faster if everything fits in memory, but on a cold cache it has many more memory loads for most operations.
* Test run quantization.Jason Evans2016-02-221-0/+1
| | | | | Also rename run_quantize_*() to improve clarity. These tests demonstrate that run_quantize_ceil() is flawed.
* Refactor time_* into nstime_*.Jason Evans2016-02-221-11/+27
| | | | | | | Use a single uint64_t in nstime_t to store nanoseconds rather than using struct timespec. This reduces fragility around conversions between long and uint64_t, especially missing casts that only cause problems on 32-bit platforms.
* Implement decay-based unused dirty page purging.Jason Evans2016-02-201-3/+8
| | | | | | | | | | | | | | | | This is an alternative to the existing ratio-based unused dirty page purging, and is intended to eventually become the sole purging mechanism. Add mallctls: - opt.purge - opt.decay_time - arena.<i>.decay - arena.<i>.decay_time - arenas.decay_time - stats.arenas.<i>.decay_time This resolves #325.
* Implement smoothstep table generation.Jason Evans2016-02-201-0/+1
| | | | | | Check in a generated smootherstep table as smoothstep.h rather than generating it at configure time, since not all systems (e.g. Windows) have dc.
* Refactor prng* from cpp macros into inline functions.Jason Evans2016-02-201-3/+5
| | | | | Remove 32-bit variant, convert prng64() to prng_lg_range(), and add prng_range().
* Implement ticker.Jason Evans2016-02-201-2/+3
| | | | | Implement ticker, which provides a simple API for ticking off some number of events before indicating that the ticker has hit its limit.
* Flesh out time_*() API.Jason Evans2016-02-201-1/+1
|
* Add time_update().Cameron Evans2016-02-201-2/+3
|
* Expand check_integration_prof testing.Jason Evans2015-09-171-0/+1
| | | | | Run integration tests with MALLOC_CONF="prof:true,prof_active:false" in addition to MALLOC_CONF="prof:true".
* Link test to librt if it contains clock_gettime(2).Jason Evans2015-09-151-3/+4
| | | | This resolves #257.
* Don't run stress tests as part of check target.Jason Evans2015-09-151-1/+1
| | | | | | This change was intended as part of 8f57e3f1aeb86021b3d078b825bc8c42b2a9af6f (Remove check_stress from check target's dependencies.).
* Remove check_stress from check target's dependencies.Jason Evans2015-09-121-4/+4
| | | | | | | | | | | | | Prior to this change the debug build/test command needed to look like: make all tests && make check_unit && make check_integration && \ make check_integration_prof This is now simply: make check Rename the check_stress target to stress.
* Generalize chunk management hooks.Jason Evans2015-08-041-3/+4
| | | | | | | | | | | | | | | | | | | | 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.
* Port mq_get() to MinGW.Jason Evans2015-07-211-3/+3
|
* Fix an integer overflow bug in {size2index,s2u}_compute().Jason Evans2015-07-101-0/+1
| | | | | | | This {bug,regression} was introduced by 155bfa7da18cab0d21d87aa2dce4554166836f5d (Normalize size classes.). This resolves #241.
* Fix size class overflow handling when profiling is enabled.Jason Evans2015-06-241-1/+8
| | | | | | | | | | Fix size class overflow handling for malloc(), posix_memalign(), memalign(), calloc(), and realloc() when profiling is enabled. Remove an assertion that erroneously caused arena_sdalloc() to fail when profiling was enabled. This resolves #232.
* Clean up bin/jeprof in distclean build target.Jason Evans2015-05-051-0/+1
|
* Rename pprof to jeprof.Jason Evans2015-05-011-1/+1
| | | | | | | | | | This rename avoids installation collisions with the upstream gperftools. Additionally, jemalloc's per thread heap profile functionality introduced an incompatible file format, so it's now worthwhile to clearly distinguish jemalloc's version of this script from the upstream version. This resolves #229.
* Put VERSION file in object directoryDan McGregor2015-02-131-1/+1
| | | | | | Also allow for the possibility that there exists a VERSION file in the srcroot, in case of building from a release tarball out of tree.
* Build docs in object directoryDan McGregor2015-02-131-4/+4
|
* Implement the jemalloc-config script.Jason Evans2015-01-231-1/+2
| | | | This resolves #133.
* Introduce two new modes of junk filling: "alloc" and "free".Guilherme Goncalves2014-12-151-0/+2
| | | | | | | | In addition to true/false, opt.junk can now be either "alloc" or "free", giving applications the possibility of junking memory only on allocation or deallocation. This resolves #172.
* Add configure options.Jason Evans2014-10-101-0/+1
| | | | | | | | | | | | Add: --with-lg-page --with-lg-page-sizes --with-lg-size-class-group --with-lg-quantum Get rid of STATIC_PAGE_SHIFT, in favor of directly setting LG_PAGE. Fix various edge conditions exposed by the configure options.
* Fix install_lib target (incorrect jemalloc.pc path).Jason Evans2014-10-041-1/+1
|
* Implement/test/fix prof-related mallctl's.Jason Evans2014-10-041-0/+2
| | | | | | | | | | | Implement/test/fix the opt.prof_thread_active_init, prof.thread_active_init, and thread.prof.active mallctl's. Test/fix the thread.prof.name mallctl. Refactor opt_prof_active to be read-only and move mutable state into the prof_active variable. Stop leaning on ctl-related locking for protection.
* Refactor permuted backtrace test allocation.Jason Evans2014-10-021-13/+7
| | | | | | Refactor permuted backtrace test allocation that was originally used only by the prof_accum test, so that it can be used by other heap profiling test binaries.
* Generate a pkg-config fileNick White2014-09-191-1/+9
|
* Add support for sized deallocation.Daniel Micay2014-09-091-0/+1
| | | | | | | | | | | | | | | | | This adds a new `sdallocx` function to the external API, allowing the size to be passed by the caller. It avoids some extra reads in the thread cache fast path. In the case where stats are enabled, this avoids the work of calculating the size from the pointer. An assertion validates the size that's passed in, so enabling debugging will allow users of the API to debug cases where an incorrect size is passed in. The performance win for a contrived microbenchmark doing an allocation and immediately freeing it is ~10%. It may have a different impact on a real workload. Closes #28
* Add microbench tests.Jason Evans2014-09-081-1/+1
|
* Add a simple timer implementation for use in benchmarking.Jason Evans2014-09-081-1/+1
|
* Disable autom4te cache.Jason Evans2014-09-031-1/+0
|
* Add atomic operations tests and fix latent bugs.Jason Evans2014-08-071-1/+2
|
* Remove ${srcroot} from cfghdrs_in, cfgoutputs_in and cfghdrs_tup in configureMike Hommey2014-08-051-2/+2
| | | | | | On Windows, srcroot may start with "drive:", which confuses autoconf's AC_CONFIG_* macros. The macros works equally well without ${srcroot}, provided some adjustment to Makefile.in.
* Add missing $(EXE) to filter TESTS_UNIT_AUX_OBJSMike Hommey2014-05-271-1/+1
|
* Define DLLEXPORT when building .jet objectsMike Hommey2014-05-271-1/+1
|