summaryrefslogtreecommitdiffstats
path: root/Makefile.in
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Fix manual dependency on jemalloc_test.hMike Hommey2014-05-271-1/+1
|
* Refactor huge allocation to be managed by arenas.Jason Evans2014-05-161-1/+0
| | | | | | | | | | | | | | | | | | | | Refactor huge allocation to be managed by arenas (though the global red-black tree of huge allocations remains for lookup during deallocation). This is the logical conclusion of recent changes that 1) made per arena dss precedence apply to huge allocation, and 2) made it possible to replace the per arena chunk allocation/deallocation functions. Remove the top level huge stats, and replace them with per arena huge stats. Normalize function names and types to *dalloc* (some were *dealloc*). Remove the --enable-mremap option. As jemalloc currently operates, this is a performace regression for some applications, but planned work to logarithmically space huge size classes should provide similar amortized performance. The motivation for this change was that mremap-based huge reallocation forced leaky abstractions that prevented refactoring.
* Add support for user-specified chunk allocators/deallocators.aravind2014-05-121-1/+2
| | | | | | | Add new mallctl endpoints "arena<i>.chunk.alloc" and "arena<i>.chunk.dealloc" to allow userspace to configure jemalloc's chunk allocator and deallocator on a per-arena basis.
* Optimize Valgrind integration.Jason Evans2014-04-151-0/+4
| | | | | | | | | | | Forcefully disable tcache if running inside Valgrind, and remove Valgrind calls in tcache-specific code. Restructure Valgrind-related code to move most Valgrind calls out of the fast path functions. Take advantage of static knowledge to elide some branches in JEMALLOC_VALGRIND_REALLOC().
* Remove the *allocm() API, which is superceded by the *allocx() API.Jason Evans2014-04-151-6/+1
|
* Convert ALLOCM_ARENA() test to MALLOCX_ARENA() test.Jason Evans2014-03-281-1/+1
|
* Break prof_accum into multiple compilation units.Jason Evans2014-02-251-3/+12
| | | | | | Break prof_accum into multiple compilation units, in order to thwart compiler optimizations such as inlining and tail call optimization that would alter backtraces.
* Add heap profiling tests.Jason Evans2014-01-171-9/+21
| | | | | | Fix a regression in prof_dump_ctx() due to an uninitized variable. This was caused by revision 4f37ef693e3d5903ce07dc0b61c0da320b35e3d9, so no releases are affected.
* Fix name mangling for stress tests.Jason Evans2014-01-171-1/+1
| | | | | | | | | | | Fix stress tests such that testlib code uses the jet_ allocator, but test code uses libjemalloc. Generate jemalloc_{rename,mangle}.h, the former because it's needed for the stress test name mangling fix, and the latter for consistency. As an artifact of this change, some (but not all) definitions related to the experimental API are absent from the headers unless the feature is enabled at configure time.
* Add junk/zero filling unit tests, and fix discovered bugs.Jason Evans2014-01-081-7/+8
| | | | | | Fix growing large reallocation to junk fill new space. Fix huge deallocation to junk fill when munmap is disabled.
* Add util unit tests, and fix discovered bugs.Jason Evans2014-01-071-1/+1
| | | | | | | | | | | | | Add unit tests for pow2_ceil(), malloc_strtoumax(), and malloc_snprintf(). Fix numerous bugs in malloc_strotumax() error handling/reporting. These bugs could have caused application-visible issues for some seldom used (0X... and 0... prefixes) or malformed MALLOC_CONF or mallctl() argument strings, but otherwise they had no impact. Fix numerous bugs in malloc_snprintf(). These bugs were not exercised by existing malloc_*printf() calls, so they had no impact.
* Add unit tests for qr, ql, and rb.Jason Evans2014-01-041-3/+5
|
* Add rtree unit tests.Jason Evans2014-01-031-2/+2
|
* Add stats unit tests.Jason Evans2013-12-201-1/+2
|
* Add mallctl*() unit tests.Jason Evans2013-12-201-4/+4
|
* Add quarantine unit tests.Jason Evans2013-12-171-1/+2
| | | | | | | | | Verify that freed regions are quarantined, and that redzone corruption is detected. Introduce a testing idiom for intercepting/replacing internal functions. In this case the replaced function is ordinarily a static function, but the idiom should work similarly for library-private functions.
* Add hash (MurmurHash3) tests.Jason Evans2013-12-171-3/+3
| | | | Add hash tests that are based on SMHasher's VerificationTest() function.
* Add ckh unit tests.Jason Evans2013-12-171-3/+4
|
* Implement the *allocx() API.Jason Evans2013-12-131-2/+5
| | | | | | | | | | | | | | | | | | | | | | | Implement the *allocx() API, which is a successor to the *allocm() API. The *allocx() functions are slightly simpler to use because they have fewer parameters, they directly return the results of primary interest, and mallocx()/rallocx() avoid the strict aliasing pitfall that allocm()/rallocx() share with posix_memalign(). The following code violates strict aliasing rules: foo_t *foo; allocm((void **)&foo, NULL, 42, 0); whereas the following is safe: foo_t *foo; void *p; allocm(&p, NULL, 42, 0); foo = (foo_t *)p; mallocx() does not have this problem: foo_t *foo = (foo_t *)mallocx(42, 0);
* Add mq (message queue) to test infrastructure.Jason Evans2013-12-121-2/+4
| | | | | | | | | Add mtx (mutex) to test infrastructure, in order to avoid bootstrapping complications that would result from directly using malloc_mutex. Rename test infrastructure's thread abstraction from je_thread to thd. Fix some header ordering issues.
* Add probabability distribution utility code.Jason Evans2013-12-101-8/+8
| | | | | | | | | | | | | | | Add probabability distribution utility code that enables generation of random deviates drawn from normal, Chi-square, and Gamma distributions. Fix format strings in several of the assert_* macros (remove a %s). Clean up header issues; it's critical that system headers are not included after internal definitions potentially do things like: #define inline Fix the build system to incorporate header dependencies for the test library C files.
* Integrate SFMT 1.3.3 into test infrastructure.Jason Evans2013-12-091-1/+3
| | | | | | | | | | | | Integrate the SIMD-oriented Fast Mersenne Twister (SFMT) 1.3.3 into the test infrastructure. The sfmt_t state encapsulation modification comes from Crux (http://www.canonware.com/Crux/) and enables multiple concurrent PRNGs. test/unit/SFMT.c is an adaptation of SFMT's test.c that performs all the same validation, both for 32- and 64-bit generation.
* Refactor tests.Jason Evans2013-12-091-2/+2
| | | | | | | Refactor tests to use explicit testing assertions, rather than diff'ing test output. This makes the test code a bit shorter, more explicitly encodes testing intent, and makes test failure diagnosis more straightforward.
* Add test code coverage analysis.Jason Evans2013-12-071-7/+49
| | | | Add test code coverage analysis based on gcov.
* Fix test refactoring issues for Linux.Jason Evans2013-12-061-2/+2
|
* Add tsd test.Jason Evans2013-12-051-1/+2
| | | | Submitted by Mike Hommey.
* Fix build target to be build_lib, as documented.Jason Evans2013-12-041-2/+2
| | | | Reported by Michael Truog.
* Refactor to support more varied testing.Jason Evans2013-12-041-78/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor the test harness to support three types of tests: - unit: White box unit tests. These tests have full access to all internal jemalloc library symbols. Though in actuality all symbols are prefixed by jet_, macro-based name mangling abstracts this away from test code. - integration: Black box integration tests. These tests link with the installable shared jemalloc library, and with the exception of some utility code and configure-generated macro definitions, they have no access to jemalloc internals. - stress: Black box stress tests. These tests link with the installable shared jemalloc library, as well as with an internal allocator with symbols prefixed by jet_ (same as for unit tests) that can be used to allocate data structures that are internal to the test code. Move existing tests into test/{unit,integration}/ as appropriate. Split out internal parts of jemalloc_defs.h.in and put them in jemalloc_internal_defs.h.in. This reduces internals exposure to applications that #include <jemalloc/jemalloc.h>. Refactor jemalloc.h header generation so that a single header file results, and the prototypes can be used to generate jet_ prototypes for tests. Split jemalloc.h.in into multiple parts (jemalloc_defs.h.in, jemalloc_macros.h.in, jemalloc_protos.h.in, jemalloc_mangle.h.in) and use a shell script to generate a unified jemalloc.h at configure time. Change the default private namespace prefix from "" to "je_". Add missing private namespace mangling. Remove hard-coded private_namespace.h. Instead generate it and private_unnamespace.h from private_symbols.txt. Use similar logic for public symbols, which aids in name mangling for jet_ symbols. Add test_warn() and test_fail(). Replace existing exit(1) calls with test_fail() calls.