summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * Fix tests build when --with-install-suffix is set.Jason Evans2010-10-078-11/+19
| | | | | | | | | | | | Add test/jemalloc_test.h.in, which is processed to include jemalloc/jemalloc@install_suffix@.h, so that test programs can include it without worrying about the install suffix.
| * Move variable declaration out of for loop header.Jason Evans2010-10-071-1/+2
| | | | | | | | | | Move a loop variable declaration out of for(usigned i = 0; ...) in order to avoid the need for C99 compilation.
| * Increase PRN 'a' and 'c' constants.Jason Evans2010-10-032-2/+2
| | | | | | | | | | Increase PRN 'a' and 'c' constants, so that high bits tend to cascade more.
| * Fix leak context count reporting.Jason Evans2010-10-031-3/+3
| | | | | | | | | | | | Fix a bug in leak context count reporting that tended to cause the number of contexts to be underreported. The reported number of leaked objects and bytes were not affected by this bug.
| * Increase default backtrace depth from 4 to 128.Jason Evans2010-10-033-10/+59
| | | | | | | | | | Increase the default backtrace depth, because shallow backtraces tend to result in confusing pprof output graphs.
| * Make cumulative heap profile data optional.Jason Evans2010-10-038-124/+328
| | | | | | | | | | | | | | | | Add the R option to control whether cumulative heap profile data are maintained. Add the T option to control the size of per thread backtrace caches, primarily because when the R option is specified, backtraces that no longer have allocations associated with them are discarded as soon as no thread caches refer to them.
| * Print prof-libgcc configure setting.Jason Evans2010-10-031-0/+1
| |
| * Remove malloc_swap_enable().Jason Evans2010-10-021-17/+0
| | | | | | | | | | | | | | Remove malloc_swap_enable(), which was obsoleted by the "swap.fds" mallctl. The prototype for malloc_swap_enable() was removed from jemalloc/jemalloc.h, but the function itself was accidentally left in place.
| * Update pprof from google-perftools 1.6.Jason Evans2010-10-021-180/+608
| | | | | | | | | | | | Import updated pprof from google-perftools 1.6, with a patch applied to fix a division by zero error (see http://code.google.com/p/google-perftools/issues/detail?id=235).
| * Use offsetof() when sizing dynamic structures.Jason Evans2010-10-023-6/+7
| | | | | | | | | | | | Base dynamic structure size on offsetof(), rather than subtracting the size of the dynamic structure member. Results could differ on systems with strict data structure alignment requirements.
| * Change CHUNK_MAP_ZEROED to CHUNK_MAP_UNZEROED.Jason Evans2010-10-022-26/+32
| | | | | | | | | | | | Invert the chunk map bit that tracks whether a page is zeroed, so that for zeroed arena chunks, the interior of the page map does not need to be initialized (as it consists entirely of zero bytes).
| * Omit chunk header in arena chunk map.Jason Evans2010-10-027-160/+193
| | | | | | | | | | | | Omit the first map_bias elements of the map in arena_chunk_t. This avoids barely spilling over into an extra chunk header page for common chunk sizes.
| * Disable interval-based profile dumps by default.Jason Evans2010-10-012-4/+8
| | | | | | | | | | | | | | | | It is common to have to specify something like JEMALLOC_OPTIONS=F31i, because interval-based dumps are often unuseful or too expensive. Therefore, disable interval-based dumps by default. To get the previous default behavior it is now necessary to specify 31I as part of the options.
| * Add the "arenas.purge" mallctl.Jason Evans2010-09-304-12/+68
| |
| * Fix compiler warnings and errors.Jason Evans2010-09-212-50/+69
| | | | | | | | | | | | | | | | Use INT_MAX instead of MAX_INT in ALLOCM_ALIGN(), and #include <limits.h> in order to get its definition. Modify prof code related to hash tables to avoid aliasing warnings from gcc 4.1.2 (gcc 4.4.0 and 4.4.3 do not warn).
| * Fix compiler warnings.Jason Evans2010-09-218-32/+124
| | | | | | | | | | | | Add --enable-cc-silence, which can be used to silence harmless warnings. Fix an aliasing bug in ckh_pointer_hash().
| * Add memalign() and valloc() overrides.Jason Evans2010-09-203-0/+58
| | | | | | | | | | If memalign() and/or valloc() are present on the system, override them in order to avoid mixed allocator usage.
| * Wrap strerror_r().Jason Evans2010-09-204-10/+32
| | | | | | | | | | Create the buferror() function, which wraps strerror_r(). This is necessary because glibc provides a non-standard strerror_r().
| * Remove bad assertions in malloc_{pre,post}fork().Jason Evans2010-09-201-7/+1
| | | | | | | | | | | | | | Remove assertions that malloc_{pre,post}fork() are only called if threading is enabled. This was true of these functions in the context of FreeBSD's libc, but now the functions are called unconditionally as a result of registering them with pthread_atfork().
| * Store full git GID in VERSION.Jason Evans2010-09-181-1/+1
| |
| * Add gcc attributes for *allocm() prototypes.Jason Evans2010-09-181-4/+6
| |
| * Add {,r,s,d}allocm().Jason Evans2010-09-1717-120/+888
| | | | | | | | | | | | Add allocm(), rallocm(), sallocm(), and dallocm(), which are a functional superset of malloc(), calloc(), posix_memalign(), malloc_usable_size(), and free().
| * Update modification date in man page.Jason Evans2010-09-121-1/+1
| |
| * Fix porting regressions.Jason Evans2010-09-123-15/+9
| | | | | | | | | | Fix new build failures and test failures on Linux that were introduced by the port to OS X.
| * Move size class table to man page.Jason Evans2010-09-123-84/+67
| | | | | | | | | | | | | | Move the table of size classes from jemalloc.c to the manual page. When manually formatting the manual page, it is now necessary to use: nroff -man -t jemalloc.3
| * Add posix_memalign test.Jason Evans2010-09-123-1/+154
| |
| * Port to Mac OS X.Jason Evans2010-09-1226-291/+1147
| | | | | | | | | | Add Mac OS X support, based in large part on the OS X support in Mozilla's version of jemalloc.
| * Add the thread.arena mallctl.Jason Evans2010-08-147-2/+191
| | | | | | | | | | | | | | Make it possible for each thread to manage which arena it is associated with. Implement the 'tests' and 'check' build targets.
* | Merge branch 'dev'1.0.3Jason Evans2010-08-123-6/+6
|\ \ | |/
| * Move assert() calls up in arena_run_reg_alloc().Jason Evans2010-08-051-1/+1
| | | | | | | | | | | | Move assert() calls up in arena_run_reg_alloc(), so that a corrupt pointer will likely be caught by an assertion *before* it is dereferenced.
| * Add a missing mutex unlock in malloc_init_hard().Jason Evans2010-07-221-0/+1
| | | | | | | | | | | | | | | | | | | | If multiple threads race to initialize malloc, the loser(s) busy-wait until initialization is complete. Add a missing mutex lock so that the loser(s) properly release the initialization mutex. Under some race conditions, this flaw could have caused one or more threads to become permanently blocked. Reported by Terrell Magee.
| * Fix the libunwind version of prof_backtrace().Jason Evans2010-06-041-5/+4
| | | | | | | | | | | | Fix the libunwind version of prof_backtrace() to set the backtrace depth for all possible code paths. This fixes the zero-length backtrace problem when using libunwind.
* | Merge branch 'dev'1.0.2Jason Evans2010-05-126-28/+52
|\ \ | |/
| * Avoid unnecessary isalloc() calls.Jason Evans2010-05-121-12/+18
| | | | | | | | | | | | When heap profiling is enabled but deactivated, there is no need to call isalloc(ptr) in prof_{malloc,realloc}(). Avoid these calls, so that profiling overhead under such conditions is negligible.
| * Fix next_arena initialization.Jason Evans2010-05-111-1/+1
| | | | | | | | | | | | If there is more than one arena, initialize next_arena so that the first and second threads to allocate memory use arenas 0 and 1, rather than both using arena 0.
| * Add MAP_NORESERVE support.Jordan DeLong2010-05-113-14/+32
| | | | | | | | | | Add MAP_NORESERVE to the chunk_mmap() case being used by chunk_swap_enable(), if the system supports it.
| * Fix junk filling of cached large objects.Jason Evans2010-04-281-1/+1
| | | | | | | | | | | | | | | | | | Use the size argument to tcache_dalloc_large() to control the number of bytes set to 0x5a when junk filling is enabled, rather than accessing a non-existent arena bin. This bug was capable of corrupting an arbitrarily large memory region, depending on what followed the arena data structure in memory (typically zeroed memory, another arena_t, or a red-black tree node for a huge object).
* | Merge branch 'dev'1.0.1Jason Evans2010-04-1411-126/+167
|\ \ | |/
| * Fix tcache crash during thread cleanup.Jason Evans2010-04-141-14/+12
| | | | | | | | | | | | | | Properly maintain tcache_bin_t's avail pointer such that it is NULL if no objects are cached. This only caused problems during thread cache destruction, since cache flushing otherwise never occurs on an empty bin.
| * Fix profiling regression caused by bugfix.Jason Evans2010-04-141-8/+9
| | | | | | | | | | | | | | Properly set the context associated with each allocated object, even when the object is not sampled. Remove debug print code that slipped in.
| * Remove autom4te.cache in distclean (not relclean).Jason Evans2010-04-141-1/+1
| |
| * Fix arena chunk purge/dealloc race conditions.Jason Evans2010-04-141-24/+30
| | | | | | | | | | | | | | | | | | Fix arena_chunk_dealloc() to put the new spare in a consistent state before dropping the arena mutex to deallocate the previous spare. Fix arena_run_dalloc() to insert a newly dirtied chunk into the chunks_dirty list before potentially deallocating the chunk, so that dirty page accounting is self-consistent.
| * Fix threads-related profiling bugs.Jason Evans2010-04-148-82/+118
| | | | | | | | | | | | | | | | Initialize bt2cnt_tsd so that cleanup at thread exit actually happens. Associate (prof_ctx_t *) with allocated objects, rather than (prof_thr_cnt_t *). Each thread must always operate on its own (prof_thr_cnt_t *), and an object may outlive the thread that allocated it.
| * Update stale JEMALLOC_FILL code.Jason Evans2010-04-141-1/+1
|/ | | | | Fix a compilation error due to stale data structure access code in tcache_dalloc_large() for junk filling.
* Update documentation.1.0.0Jason Evans2010-04-123-2/+13
|
* Generalize ExtractSymbols optimization (pprof).Jason Evans2010-04-091-17/+18
| | | | | Generalize ExtractSymbols to handle all cases of library address overlap with the main binary.
* Revert re-addition of purge_lock.Jason Evans2010-04-092-39/+48
| | | | | Linux kernels have been capable of concurrent page table access since 2.6.27, so this hack is not necessary for modern kernels.
* Fix P/p reporting in stats_print().Jason Evans2010-04-091-1/+3
| | | | | | Now that JEMALLOC_OPTIONS=P isn't the only way to cause stats_print() to be called, opt_stats_print must actually be checked when reporting the state of the P/p option.
* Don't build with -march=native.Jason Evans2010-04-081-1/+0
| | | | | | Don't build with -march=native by default, because the generated code may perform especially poorly on ABI-compatible, but internally different, systems.
* Fix build system problems.Jason Evans2010-04-086-32/+21
| | | | | | | | Split library build rules up so that parallel building works. Fix autoconf-related dependencies. Remove obsolete JEMALLOC_VERSION definition.