summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Remove quarantine support.Jason Evans2016-05-1324-519/+51
|
* Remove Valgrind support.Jason Evans2016-05-1323-409/+33
|
* Use TSDN_NULL rather than NULL as appropriate.Jason Evans2016-05-133-9/+9
|
* Fix a typo.Jason Evans2016-05-121-1/+1
|
* Merge branch 'dev'4.2.0Jason Evans2016-05-1278-2428/+4916
|\
| * Update ChangeLog for 4.2.0.Jason Evans2016-05-121-1/+1
| |
| * Guard tsdn_tsd() call with tsdn_null() check.Jason Evans2016-05-111-2/+2
| |
| * Mangle tested functions as n_witness_* rather than witness_*_impl.Jason Evans2016-05-111-9/+8
| |
| * Optimize witness fast path.Jason Evans2016-05-114-132/+157
| | | | | | | | | | | | | | | | | | | | | | Short-circuit commonly called witness functions so that they only execute in debug builds, and remove equivalent guards from mutex functions. This avoids pointless code execution in witness_assert_lockless(), which is typically called twice per allocation/deallocation function invocation. Inline commonly called witness functions so that optimized builds can completely remove calls as dead code.
| * Fix chunk accounting related to triggering gdump profiles.Jason Evans2016-05-112-0/+16
| | | | | | | | | | Fix in place huge reallocation to update the chunk counters that are used for triggering gdump profiles.
| * Disable junk filling for tests that could otherwise easily OOM.Jason Evans2016-05-112-0/+8
| |
| * Resolve bootstrapping issues when embedded in FreeBSD libc.Jason Evans2016-05-1134-1554/+1707
| | | | | | | | | | | | | | | | | | | | | | | | | | b2c0d6322d2307458ae2b28545f8a5c9903d7ef5 (Add witness, a simple online locking validator.) caused a broad propagation of tsd throughout the internal API, but tsd_fetch() was designed to fail prior to tsd bootstrapping. Fix this by splitting tsd_t into non-nullable tsd_t and nullable tsdn_t, and modifying all internal APIs that do not critically rely on tsd to take nullable pointers. Furthermore, add the tsd_booted_get() function so that tsdn_fetch() can probe whether tsd bootstrapping is complete and return NULL if not. All dangerous conversions of nullable pointers are tsdn_tsd() calls that assert-fail on invalid conversion.
| * Fix tsd bootstrapping for a0malloc().Jason Evans2016-05-077-43/+101
| |
| * Add LG_QUANTUM definition for the RISC-V architecture.Jason Evans2016-05-071-0/+3
| |
| * Update ChangeLog.Jason Evans2016-05-061-0/+22
| |
| * Update private_symbols.txt.Jason Evans2016-05-061-2/+11
| |
| * Optimize the fast paths of calloc() and [m,d,sd]allocx().Jason Evans2016-05-066-243/+137
| | | | | | | | | | | | | | | | This is a broader application of optimizations to malloc() and free() in f4a0f32d340985de477bbe329ecdaecd69ed1055 (Fast-path improvement: reduce # of branches and unnecessary operations.). This resolves #321.
| * Modify pages_map() to support mapping uncommitted virtual memory.Jason Evans2016-05-067-27/+117
| | | | | | | | | | | | | | | | | | | | | | If the OS overcommits: - Commit all mappings in pages_map() regardless of whether the caller requested committed memory. - Linux-specific: Specify MAP_NORESERVE to avoid unfortunate interactions with heuristic overcommit mode during fork(2). This resolves #193.
| * Scale leak report summary according to sampling probability.Jason Evans2016-05-041-18/+38
| | | | | | | | | | | | | | This makes the numbers reported in the leak report summary closely match those reported by jeprof. This resolves #356.
| * Add the stats.retained and stats.arenas.<i>.retained statistics.Jason Evans2016-05-047-6/+70
| | | | | | | | This resolves #367.
| * Link against librt for clock_gettime(2) if glibc < 2.17.Jason Evans2016-05-042-12/+5
| | | | | | | | | | | | | | 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 a typo.Jason Evans2016-05-041-1/+1
| |
| * Fix huge_palloc() regression.Jason Evans2016-05-049-20/+42
| | | | | | | | | | | | | | | | | | | | Split arena_choose() into arena_[i]choose() and use arena_ichoose() for arena lookup during internal allocation. This fixes huge_palloc() so that it always succeeds during extent node allocation. This regression was introduced by 66cd953514a18477eb49732e40d5c2ab5f1b12c5 (Do not allocate metadata via non-auto arenas, nor tcaches.).
| * Update ChangeLog for 4.1.1.Jason Evans2016-05-041-0/+21
| |
| * Don't test fork() on Windows.Jason Evans2016-05-041-0/+6
| |
| * Update mallocx() OOM test to deal with smaller hugemax.Jason Evans2016-05-031-10/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | Depending on virtual memory resource limits, it is necessary to attempt allocating three maximally sized objects to trigger OOM rather than just two, since the maximum supported size is slightly less than half the total virtual memory address space. This fixes a test failure that was introduced by 0c516a00c4cb28cff55ce0995f756b5aae074c9e (Make *allocx() size class overflow behavior defined.). This resolves #379.
| * Fix witness/fork() interactions.Jason Evans2016-04-265-9/+42
| | | | | | | | | | | | Fix witness to clear its list of owned mutexes in the child if platform-specific malloc_mutex code re-initializes mutexes rather than unlocking them.
| * Fix fork()-related lock rank ordering reversals.Jason Evans2016-04-2611-40/+184
| |
| * Use separate arena for chunk tests.Jason Evans2016-04-261-28/+45
| | | | | | | | | | This assures that side effects of internal allocation don't impact tests.
| * Fix arena reset effects on large/huge stats.Jason Evans2016-04-251-5/+24
| | | | | | | | | | | | Reset large curruns to 0 during arena reset. Do not increase huge ndalloc stats during arena reset.
| * Fix arena_reset() test to avoid tcache.Jason Evans2016-04-251-10/+9
| |
| * Fix arena_choose_hard() regression.Jason Evans2016-04-231-1/+1
| | | | | | | | | | This regression was caused by 66cd953514a18477eb49732e40d5c2ab5f1b12c5 (Do not allocate metadata via non-auto arenas, nor tcaches.).
| * Fix degenerate mb_write() compilation error.Jason Evans2016-04-231-3/+3
| | | | | | | | This resolves #375.
| * Implement the arena.<i>.reset mallctl.Jason Evans2016-04-228-39/+411
| | | | | | | | | | | | | | This makes it possible to discard all of an arena's allocations in a single operation. This resolves #146.
| * Do not allocate metadata via non-auto arenas, nor tcaches.Jason Evans2016-04-2214-135/+192
| | | | | | | | | | This assures that all internally allocated metadata come from the first opt_narenas arenas, i.e. the automatically multiplexed arenas.
| * Reduce a variable scope.Jason Evans2016-04-221-2/+1
| |
| * Doc typo fixes.hitstergtd2016-04-181-3/+3
| |
| * Fix malloc_mutex_assert_[not_]owner() for --enable-lazy-lock case.Jason Evans2016-04-181-2/+2
| |
| * Update private_symbols.txt.Jason Evans2016-04-183-22/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change test-related mangling to simplify symbol filtering. The following commands can be used to detect missing/obsolete symbol mangling, with the caveat that the full set of symbols is based on the union of symbols generated by all configurations, some of which are platform-specific: ./autogen.sh --enable-debug --enable-prof --enable-lazy-lock make all tests nm -a lib/libjemalloc.a src/*.jet.o \ |grep " [TDBCR] " \ |awk '{print $3}' \ |sed -e 's/^\(je_\|jet_\(n_\)\?\)\([a-zA-Z0-9_]*\)/\3/g' \ |LC_COLLATE=C sort -u \ |grep -v \ -e '^\(malloc\|calloc\|posix_memalign\|aligned_alloc\|realloc\|free\)$' \ -e '^\(m\|r\|x\|s\|d\|sd\|n\)allocx$' \ -e '^mallctl\(\|nametomib\|bymib\)$' \ -e '^malloc_\(stats_print\|usable_size\|message\)$' \ -e '^\(memalign\|valloc\)$' \ -e '^__\(malloc\|memalign\|realloc\|free\)_hook$' \ -e '^pthread_create$' \ > /tmp/private_symbols.txt
| * Update private_symbols.txtRajat Goel2016-04-181-0/+4
| | | | | | Add 4 missing symbols
| * Fix style nits.Jason Evans2016-04-175-6/+6
| |
| * Fix malloc_mutex_[un]lock() to conditionally check witness.Jason Evans2016-04-172-12/+2
| | | | | | | | Also remove tautological cassert(config_debug) calls.
| * Convert base_mtx locking protocol comments to assertions.Jason Evans2016-04-171-10/+12
| |
| * s/MALLOC_MUTEX_RANK_OMIT/WITNESS_RANK_OMIT/Jason Evans2016-04-141-1/+1
| | | | | | | | | | | | | | | | This fixes a compilation error caused by b2c0d6322d2307458ae2b28545f8a5c9903d7ef5 (Add witness, a simple online locking validator.). This resolves #375.
| * Fix a compilation error.Jason Evans2016-04-141-2/+2
| | | | | | | | | | | | Fix a compilation error that occurs if Valgrind is not enabled. This regression was caused by b2c0d6322d2307458ae2b28545f8a5c9903d7ef5 (Add witness, a simple online locking validator.).
| * Add witness, a simple online locking validator.Jason Evans2016-04-1433-1274/+2090
| | | | | | | | This resolves #358.
| * Fix a style nit.Jason Evans2016-04-131-1/+2
| |
| * Fix more 64-to-32 conversion warnings.Jason Evans2016-04-122-11/+11
| |
| * Fix 64-to-32 conversion warnings in 32-bit moderustyx2016-04-121-11/+15
| |
| * Cleanup MSVC project, embed PDB data inside static .librustyx2016-04-122-14/+11
| |