summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'dev'3.6.0Jason Evans2014-03-3129-88/+177
|\
| * Add private namespace mangling for huge_dss_prec_get().Jason Evans2014-03-311-0/+1
| |
| * Update ChangeLog for 3.6.0.Jason Evans2014-03-311-0/+24
| |
| * Document how dss precedence affects huge allocation.Jason Evans2014-03-311-2/+6
| |
| * Allow libgcc-based backtracing on x86.Jason Evans2014-03-311-16/+0
| | | | | | | | | | | | | | Remove autoconf code that explicitly disabled libgcc-based backtracing on i[3456]86. There is no mention of which platforms/compilers exhibited problems when this code was added, and chances are good that any gcc toolchain issues have long since been fixed.
| * Keep frame pointers if using gcc frame intrinsics.Jason Evans2014-03-311-0/+1
| | | | | | | | | | | | Specify -fno-omit-frame-pointer when using __builtin_frame_address() and __builtin_return_address() for backtracing. This fixes backtracing failures on e.g. i686 for optimized builds.
| * Enable big-endian mode for SFMT.Jason Evans2014-03-311-0/+3
| | | | | | | | | | Add cpp logic to enable big-endian mode in SFMT. This should fix SFMT tests on e.g. MIPS and SPARC.
| * Adapt hash tests to big-endian systems.Jason Evans2014-03-304-1/+15
| | | | | | | | | | | | | | | | | | The hash code, which has MurmurHash3 at its core, generates different output depending on system endianness, so adapt the expected output on big-endian systems. MurmurHash3 code also makes the assumption that unaligned access is okay (not true on all systems), but jemalloc only hashes data structures that have sufficient alignment to dodge this limitation.
| * Reduce maximum tested alignment.Jason Evans2014-03-303-6/+4
| | | | | | | | | | | | | | Reduce maximum tested alignment from 2^29 to 2^25. Some systems may not have enough contiguous virtual memory to satisfy the larger alignment, but the smaller alignment is still adequate to test multi-chunk alignment.
| * Fix message formatting errors uncovered by p_test_fail() refactoring.Jason Evans2014-03-305-11/+12
| |
| * Fix p_test_fail()'s va_list abuse.Jason Evans2014-03-303-22/+43
| | | | | | | | | | | | | | | | | | p_test_fail() was passing a va_list to two separate functions with the expectation that no reset would occur. Refactor p_test_fail()'s callers to instead format two strings and pass them to p_test_fail(). Add a missing parameter to an assert_u64_eq() call, which the compiler warned about after the assertion macro refactoring.
| * Merge pull request #59 from HarryWeppner/devJason Evans2014-03-292-4/+31
| |\ | | | | | | FreeBSD memory (leak) profiling support
| | * Consistently use debug lib(s) if presentHarald Weppner2014-03-281-8/+5
| | | | | | | | | | | | | | | | | | Fixes a situation where nm uses the debug lib but addr2line does not, which completely messes up the symbol lookup.
| | * Consistently use debug lib(s) if presentHarald Weppner2014-03-181-1/+7
| | | | | | | | | | | | | | | | | | Fixes a situation where nm uses the debug lib but addr2line does not, which completely messes up the symbol lookup.
| | * Enable profiling / leak detection in FreeBSDHarald Weppner2014-03-182-3/+27
| | | | | | | | | | | | | | | * Assumes procfs is mounted at /proc, cf. <http://www.freebsd.org/doc/en/articles/linux-users/procfs.html>
| * | Merge pull request #61 from mxw/huge-dss-precJason Evans2014-03-284-19/+27
| |\ \ | | | | | | | | Use arena dss prec instead of default for huge allocs.
| | * | Use arena dss prec instead of default for huge allocs.Max Wang2014-03-284-19/+27
| | |/ | | | | | | | | | | | | Pass a dss_prec_t parameter to huge_{m,p,r}alloc instead of defaulting to the chunk dss prec.
| * | Convert ALLOCM_ARENA() test to MALLOCX_ARENA() test.Jason Evans2014-03-282-5/+5
| | |
| * | Merge pull request #60 from telemenar/devJason Evans2014-03-281-1/+4
| |\ \ | | |/ | |/| Fix a crashing case where arena_chunk_init_hard returns NULL.
| | * Fix a crashing case where arena_chunk_init_hard returns NULL.Chris Pride2014-03-261-1/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | This happens when it fails to allocate a new chunk. Which arena_chunk_alloc then passes into arena_avail_insert without any checks. This then causes a crash when arena_avail_insert tries to check chunk->ndirty. This was introduced by the refactoring of arena_chunk_alloc which previously would have returned NULL immediately after calling chunk_alloc. This is now the return from arena_chunk_init_hard so we need to check that return, and not continue if it was NULL.
| * Remove duplicate 'static' keyword.Jason Evans2014-02-261-1/+1
|/ | | | Reported by İsmail Dönmez.
* Merge branch 'dev'3.5.1Jason Evans2014-02-2618-116/+140
|\
| * Update ChangeLog for 3.5.1.Jason Evans2014-02-261-2/+20
| |
| * Restore tail call optimization subversion.Jason Evans2014-02-261-7/+13
| | | | | | | | | | | | Restore the essence of 898960247a8b2e6534738b7a3a244855f379faf9, which sabotages tail call optimization. This is necessary even when the mutually recursive functions are in separate compilation units.
| * Fix junk filling for mremap(2)-based huge reallocation.Jason Evans2014-02-252-3/+16
| | | | | | | | | | | | | | If mremap(2) is used for huge reallocation, physical pages are mapped to new virtual addresses rather than data being copied to new pages. This bypasses the normal junk filling that would happen during allocation, so add junk filling that is specific to this case.
| * Add configure test to verify SSE2 code compiles.Jason Evans2014-02-251-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure that emmintrin.h can be #include'd without causing a compilation error, rather than blindly defining HAVE_SSE2 based on architecture. Attempts to force SSE2 compilation on a 32-bit Ubuntu 13.10 system running as a VMware guest resulted in a no-win choice without any obvious explanation besides toolchain misconfiguration/bug: - Suffer compilation failure due to __MMX__, __SSE__, and __SSE2__ not being defined, even if -mmmx, -msse, and -msse2 are manually specified (note that they appear to be enabled by default). - Manually define __MMX__, __SSE__, and __SSE2__, and suffer compiler warnings that they are already automatically defined. This results in successful compilation and execution, but the noise is intolerable.
| * Break prof_accum into multiple compilation units.Jason Evans2014-02-255-40/+48
| | | | | | | | | | | | 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 workaround for missing 'restrict' keyword.Jason Evans2014-02-253-0/+12
| | | | | | | | | | | | | | | | | | Add a cpp #define that removes 'restrict' keyword usage unless the compiler definitely supports C99. As written, 'restrict' is only enabled if the compiler supports the -std=gnu99 option (e.g. gcc and llvm). Reported by Tobias Hieta.
| * Merge pull request #51 from ErwanLegrand/devJason Evans2014-02-141-1/+0
| |\ | | | | | | Fix typo
| | * Fix typoErwan Legrand2014-02-141-1/+0
| |/
| * Merge pull request #50 from georgekola/Voxer-SolarisJason Evans2014-02-131-0/+1
| |\ | | | | | | Using MADV_FREE on Solaris/Illumos
| | * Using MADV_FREE on Solaris/IllumosGeorge Kola2014-02-121-0/+1
| |/
| * Prevent inlining of backtraced test functions.Jason Evans2014-01-291-2/+2
| | | | | | | | | | Inlining of alloc_0() and alloc_1() would prevent generation of unique backtraces, upon which the test code relies.
| * Remove flawed alignment-related overflow test.Jason Evans2014-01-291-23/+0
| | | | | | | | | | | | | | | | Remove the allocm() test equivalent to the mallocx() test removed in the previous commit. The flawed test attempted to cause OOM due to large request size and alignment constraint. Although this test "passed" on 64-bit systems due to the virtual memory hole, it could pass on some 32-bit systems.
| * Avoid a compiler warning.Jason Evans2014-01-291-1/+5
| | | | | | | | | | | | | | | | Avoid copying "jeprof" to a 1-byte buffer within prof_boot0() when heap profiling is disabled. Although this is dead code under such conditions, the compiler doesn't figure that part out. Reported by Eduardo Silva.
| * Fix/remove flawed alignment-related overflow tests.Jason Evans2014-01-293-25/+4
| | | | | | | | | | | | | | Fix/remove three related flawed tests that attempted to cause OOM due to large request size and alignment constraint. Although these tests "passed" on 64-bit systems due to the virtual memory hole, they could pass on some 32-bit systems.
| * Fix mallctl argument size mismatches (size_t vs. uint64_t).Jason Evans2014-01-291-8/+15
| | | | | | | | Reported by İsmail Dönmez.
| * Fix a typo.Jason Evans2014-01-221-1/+1
|/
* Merge branch 'dev'3.5.0Jason Evans2014-01-22136-3802/+13957
|\
| * Update ChangeLog for 3.5.0.Jason Evans2014-01-221-1/+1
| |
| * Update copyrights.Jason Evans2014-01-221-2/+2
| |
| * Test and fix malloc_printf("%%").Jason Evans2014-01-222-7/+8
| |
| * Remove __FBSDID from rb.h.Jason Evans2014-01-221-4/+0
| |
| * Subvert tail call optimization in backtrace test.Jason Evans2014-01-211-11/+17
| | | | | | | | | | | | | | Re-structure alloc_[01](), which are mutually tail-recursive functions, to do (unnecessary) work post-recursion so that the compiler cannot perform tail call optimization, thus preserving intentionally unique call paths in captured backtraces.
| * Fix unused variable warnings.Jason Evans2014-01-212-7/+3
| |
| * Avoid lazy-lock in a tcache-dependent test.Jason Evans2014-01-211-14/+34
| |
| * Update ChangeLog.Jason Evans2014-01-181-0/+38
| |
| * Add heap profiling tests.Jason Evans2014-01-177-22/+290
| | | | | | | | | | | | Fix a regression in prof_dump_ctx() due to an uninitized variable. This was caused by revision 4f37ef693e3d5903ce07dc0b61c0da320b35e3d9, so no releases are affected.
| * Fix a variable prototype/definition mismatch.Jason Evans2014-01-172-3/+7
| |
| * Fix name mangling for stress tests.Jason Evans2014-01-1713-174/+164
| | | | | | | | | | | | | | | | | | | | | | 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.