summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * Remove rbt_nilDave Watson2016-02-242-109/+86
| | | | | | | | | | Since this is an intrusive tree, rbt_nil is the whole size of the node and can be quite large. For example, miscelm is ~100 bytes.
| * Use table lookup for run_quantize_{floor,ceil}().Jason Evans2016-02-234-32/+90
| | | | | | | | | | Reduce run quantization overhead by generating lookup tables during bootstrapping, and using the tables for all subsequent run quantization.
| * Fix run_quantize_ceil().Jason Evans2016-02-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | In practice this bug had limited impact (and then only by increasing chunk fragmentation) because run_quantize_ceil() returned correct results except for inputs that could only arise from aligned allocation requests that required more than page alignment. This bug existed in the original run quantization implementation, which was introduced by 8a03cf039cd06f9fa6972711195055d865673966 (Implement cache index randomization for large allocations.).
| * Test run quantization.Jason Evans2016-02-225-10/+194
| | | | | | | | | | Also rename run_quantize_*() to improve clarity. These tests demonstrate that run_quantize_ceil() is flawed.
| * Indentation style cleanup.Jason Evans2016-02-221-13/+13
| |
| * Refactor time_* into nstime_*.Jason Evans2016-02-2217-557/+526
| | | | | | | | | | | | | | 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.
| * Fix Windows-specific prof-related compilation portability issues.Jason Evans2016-02-212-5/+16
| |
| * Fix time_update() to compile and work on MinGW.Jason Evans2016-02-211-6/+9
| |
| * Remove _WIN32-specific struct timespec declaration.Jason Evans2016-02-211-6/+0
| | | | | | | | struct timespec is already defined by the system (at least on MinGW).
| * Fix overflow in prng_range().Jason Evans2016-02-215-6/+40
| | | | | | | | | | Add jemalloc_ffs64() and use it instead of jemalloc_ffsl() in prng_range(), since long is not guaranteed to be a 64-bit type.
| * Add symbol mangling for prng_[lg_]range().Jason Evans2016-02-201-0/+2
| |
| * Add MS Visual Studio 2015 supportrustyx2016-02-2010-0/+1204
| |
| * Fix warning in ipallocrustyx2016-02-201-2/+2
| |
| * Prevent MSVC from optimizing away tls_callback (resolves #318)rustyx2016-02-201-1/+3
| |
| * getpid() fix for Win32rustyx2016-02-202-0/+4
| |
| * Add CPU "pause" intrinsic for MSVCrustyx2016-02-201-6/+16
| |
| * Fix error "+ 2")syntax error: invalid arithmetic operator (error token is " ↵rustyx2016-02-201-1/+1
| | | | | | | | in Cygwin x64
| * Detect LG_SIZEOF_PTR depending on MSVC platform targetrustyx2016-02-202-6/+19
| |
| * Fix a typo in the ckh_search() prototype.Christopher Ferris2016-02-201-1/+1
| |
| * Handle unaligned keys in hash().Jason Evans2016-02-202-4/+33
| | | | | | | | Reported by Christopher Ferris <cferris@google.com>.
| * Increase test coverage in test_decay_ticks.Jason Evans2016-02-201-123/+98
| |
| * Implement decay-based unused dirty page purging.Jason Evans2016-02-2018-112/+1268
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-205-0/+472
| | | | | | | | | | | | 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 out arena_compute_npurge().Jason Evans2016-02-201-43/+37
| | | | | | | | | | Refactor out arena_compute_npurge() by integrating its logic into arena_stash_dirty() as an incremental computation.
| * Refactor arenas_cache tsd.Jason Evans2016-02-206-92/+142
| | | | | | | | | | Refactor arenas_cache tsd into arenas_tdata, which is a structure of type arena_tdata_t.
| * Refactor arena_ralloc_no_move().Jason Evans2016-02-201-11/+10
| | | | | | | | | | Refactor early return logic in arena_ralloc_no_move() to return early on failure rather than on success.
| * Refactor arena_malloc_hard() out of arena_malloc().Jason Evans2016-02-203-17/+25
| |
| * Refactor prng* from cpp macros into inline functions.Jason Evans2016-02-2012-69/+205
| | | | | | | | | | Remove 32-bit variant, convert prng64() to prng_lg_range(), and add prng_range().
| * Use ticker for incremental tcache GC.Jason Evans2016-02-202-5/+4
| |
| * Implement ticker.Jason Evans2016-02-206-2/+163
| | | | | | | | | | 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-208-56/+397
| |
| * Add time_update().Cameron Evans2016-02-207-2/+97
| |
| * Add --with-malloc-conf.Jason Evans2016-02-209-44/+87
| | | | | | | | | | Add --with-malloc-conf, which makes it possible to embed a default options string during configuration.
| * Fix arena_sdalloc() line wrapping.Jason Evans2016-02-201-5/+8
| |
| * Fix test_stats_arenas_summary fragility.Jason Evans2016-02-201-4/+4
| | | | | | | | | | Fix test_stats_arenas_summary to deallocate before asserting that purging must have happened.
| * Don't rely on unpurged chunks in xallocx() test.Jason Evans2016-02-201-20/+20
| |
| * Fix a documentation editing error.Jason Evans2016-02-201-1/+1
| |
| * Pass retain and exclude parameters to /pprof/symbol.Jason Evans2016-01-301-0/+23
| | | | | | | | | | | | Pass the retain and exclude parameters to the /pprof/symbol pprof server endpoint so that the server has the opportunity to optimize which symbols it looks up and/or returns mappings for.
| * Detect failed profile fetchesDave Watson2016-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Currently an HTTP error response will still try to be parsed, resulting in these messages: substr outside of string at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3635, <PROFILE> line 1. Use of uninitialized value in string eq at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3635, <PROFILE> line 1. substr outside of string at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3637, <PROFILE> line 1. Use of uninitialized value in string eq at /home/davejwatson/local/jemalloc-github/bin/jeprof line 3637, <PROFILE> line 1. /home/davejwatson/jeprof/server.1452638936.localhost.pprof.heap: header size >= 2**16 After this fix, curl will return an error status code that will be correctly checked at line 3536, resulting in this error message: Failed to get profile: curl -s --fail 'http://localhost:4010/pprof/heap' > /home/davejwatson/jeprof/.tmp.server.1452639085.localhost.pprof.heap: No such file or directory Test Plan: Tested with MALLOC_CONF="prof:false". Also tested fetching symbols. Didn't test redirects, but this should only affect http error codes >= 400
| * Don't discard curl options if timeout is not defined.Dave Watson2016-01-121-1/+1
| | | | | | | | Merge of https://github.com/gperftools/gperftools/commit/5078abdb331e63d7a216994f186eb736861f8df7
| * Call malloc_test_boot0() from malloc_init_hard_recursible().Cosmin Paraschiv2016-01-111-5/+16
| | | | | | | | | | | | | | | | | | | | | | When using LinuxThreads, malloc bootstrapping deadlocks, since malloc_tsd_boot0() ends up calling pthread_setspecific(), which causes recursive allocation. Fix it by moving the malloc_tsd_boot0() call to malloc_init_hard_recursible(). The deadlock was introduced by 8bb3198f72fc7587dc93527f9f19fb5be52fa553 (Refactor/fix arenas manipulation.), when tsd_boot() was split and the top half, tsd_boot0(), got an extra tsd_wrapper_set() call.
| * Implement --retain and --exclude in jeprof.Jason Evans2015-12-141-2/+48
| | | | | | | | | | These options make it possible to filter symbolized backtrace frames using regular expressions.
| * Use AC_CONFIG_AUX_DIR([build-aux]).Jason Evans2015-11-124-0/+2
| | | | | | | | This resolves #293.
| * Tweak code to allow compilation of concatenated src/*.c sources.Jason Evans2015-11-124-46/+62
| | | | | | | | This resolves #294.
| * Fix a comment.Jason Evans2015-11-121-1/+1
| |
| * Reuse previously computed valueDmitry-Me2015-11-121-2/+4
| |
| * Fast-path improvement: reduce # of branches and unnecessary operations.Qi Wang2015-11-1011-211/+354
| | | | | | | | | | | | - Combine multiple runtime branches into a single malloc_slow check. - Avoid calling arena_choose / size2index / index2size on fast path. - A few micro optimizations.
| * Add test for tree destructionJoshua Kahn2015-11-091-1/+16
| |
| * Add function to destroy treeJoshua Kahn2015-11-091-1/+40
| | | | | | | | | | | | | | ex_destroy iterates over the tree using post-order traversal so nodes can be removed and processed by the callback function without paying the cost to rebalance the tree. The destruction process cannot be stopped once started.
| * Allow const keys for lookupJoshua Kahn2015-11-095-17/+18
| | | | | | | | | | | | Signed-off-by: Steve Dougherty <sdougherty@barracuda.com> This resolves #281.