summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
| * Update ChangeLog for 3.4.1.Jason Evans2013-10-211-1/+1
| |
| * Update README.Jason Evans2013-10-211-7/+11
| |
| * Fix a compiler warning.Jason Evans2013-10-201-1/+1
| | | | | | | | | | | | | | Fix a compiler warning in chunk_record() that was due to reading node rather than xnode. In practice this did not cause any correctness issue, but dataflow analysis in some compilers cannot tell that node and xnode are always equal in cases that the read is reached.
| * Fix a race condition in the "arenas.extend" mallctl.Jason Evans2013-10-202-36/+46
| | | | | | | | | | | | | | | | Fix a race condition in the "arenas.extend" mallctl that could lead to internal data structure corruption. The race could be hit if one thread called the "arenas.extend" mallctl while another thread concurrently triggered initialization of one of the lazily created arenas.
| * Fix an off-by-one flaw in a test.Jason Evans2013-10-201-1/+2
| |
| * Fix dangerous casts in tests.Jason Evans2013-10-203-6/+10
| | | | | | | | | | | | Fix dangerous casts of int variables to pointers in thread join function calls. On LP64 systems, int and pointers are different sizes, so writes can corrupt memory.
| * Fix a Valgrind integration flaw.Jason Evans2013-10-203-9/+25
| | | | | | | | | | | | Fix a Valgrind integration flaw that caused Valgrind warnings about reads of uninitialized memory in internal zero-initialized data structures (relevant to tcache and prof code).
| * Update ChangeLog.Jason Evans2013-10-201-0/+10
| |
| * Fix a Valgrind integration flaw.Jason Evans2013-10-203-32/+57
| | | | | | | | | | Fix a Valgrind integration flaw that caused Valgrind warnings about reads of uninitialized memory in arena chunk headers.
| * Fix inlining warning.Jason Evans2013-10-202-3/+15
| | | | | | | | | | | | | | | | | | Add the JEMALLOC_ALWAYS_INLINE_C macro and use it for always-inlined functions declared in .c files. This fixes a function attribute inconsistency for debug builds that resulted in (harmless) compiler warnings about functions not being inlinable. Reported by Ricardo Nabinger Sanchez.
| * Silence an unused variable warning.Jason Evans2013-10-201-1/+1
| | | | | | | | Reported by Ricardo Nabinger Sanchez.
| * malloc_conf_init: revert errno value when readlink(2) fail.Alexandre Perrin2013-10-131-14/+14
| |
| * Fix typo.Jason Evans2013-10-031-1/+1
| |
| * Fix build break for MSVC.Jason Evans2013-08-202-2/+7
| | | | | | | | | | | | | | | | Introduce AROUT to control whether there is space between ARFLAGS and $@. This regression was introduced by ad505e0ec622883fbb0650763ea8b54f64a770c9. Reported by Mike Hommey.
| * Allow toolchain to determine arJory A. Pratt2013-08-192-4/+10
|/
* Merge branch 'dev'3.4.0Jason Evans2013-06-034-8/+41
|\
| * Update ChangeLog for 3.4.0.Jason Evans2013-06-031-1/+14
| |
| * Add aarch64 LG_QUANTUM size definitionRiku Voipio2013-05-071-0/+3
| | | | | | | | Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
| * Fix another deadlock related to chunk_record().Jason Evans2013-04-231-8/+11
| | | | | | | | | | | | Fix chunk_record() to unlock chunks_mtx before deallocating a base node, in order to avoid potential deadlock. This fix addresses the second of two similar bugs.
| * Fix deadlock related to chunk_record().Jason Evans2013-04-171-4/+11
| | | | | | | | | | | | | | Fix chunk_record() to unlock chunks_mtx before deallocating a base node, in order to avoid potential deadlock. Reported by Tudor Bosman.
| * Clarify how to use malloc_conf.Jason Evans2013-03-191-1/+8
|/ | | | | | Clarify that malloc_conf is intended only for compile-time configuration, since jemalloc may be initialized before main() is entered.
* Merge branch 'dev'3.3.1Jason Evans2013-03-0617-141/+241
|\
| * Update ChangeLog for 3.3.1.Jason Evans2013-03-061-1/+5
| |
| * Add no-op bodies to VALGRIND_*() macro stubs.Jason Evans2013-03-061-9/+11
| | | | | | | | | | | | | | | | | | Add no-op bodies to VALGRIND_*() macro stubs so that they can be used in contexts like the following without generating a compiler warning about the 'if' statement having an empty body: if (config_valgrind) VALGRIND_MAKE_MEM_UNDEFINED(ret, size);
| * fix building for s390 systemsMike Frysinger2013-03-061-1/+1
| | | | | | | | | | | | | | | | | | Checking for __s390x__ means you work on s390x, but not s390 (32bit) systems. So use __s390__ which works for both. With this, `make check` passes on s390. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
| * Fix a prof-related locking order bug.Jason Evans2013-02-065-25/+44
| | | | | | | | | | Fix a locking order bug that could cause deadlock during fork if heap profiling were enabled.
| * Fix Valgrind integration.Jason Evans2013-02-019-32/+44
| | | | | | | | | | Fix Valgrind integration to annotate all internally allocated memory in a way that keeps Valgrind happy about internal data structure access.
| * Fix a chunk recycling bug.Jason Evans2013-02-012-0/+9
| | | | | | | | | | | | | | | | | | | | | | Fix a chunk recycling bug that could cause the allocator to lose track of whether a chunk was zeroed. On FreeBSD, NetBSD, and OS X, it could cause corruption if allocating via sbrk(2) (unlikely unless running with the "dss:primary" option specified). This was completely harmless on Linux unless using mlockall(2) (and unlikely even then, unless the --disable-munmap configure option or the "dss:primary" option was specified). This regression was introduced in 3.1.0 by the mlockall(2)/madvise(2) interaction fix.
| * Fix two quarantine bugs.Jason Evans2013-01-312-10/+24
| | | | | | | | | | | | | | Internal reallocation of the quarantined object array leaked the old array. Reallocation failure for internal reallocation of the quarantined object array (very unlikely) resulted in memory corruption.
| * Fix potential TLS-related memory corruption.Jason Evans2013-01-317-65/+105
|/ | | | | | | | | | Avoid writing to uninitialized TLS as a side effect of deallocation. Initializing TLS during deallocation is unsafe because it is possible that a thread never did any allocation, and that TLS has already been deallocated by the threads library, resulting in write-after-free corruption. These fixes affect prof_tdata and quarantine; all other uses of TLS are already safe, whether intentionally (as for tcache) or unintentionally (as for arenas).
* Merge branch 'dev'3.3.0Jason Evans2013-01-2321-311/+648
|\
| * Updated ChangeLog for 3.3.0.Jason Evans2013-01-232-3/+13
| |
| * Specify 'inline' in addition to always_inline attribute.Jason Evans2013-01-231-1/+1
| | | | | | | | | | Specify both inline and __attribute__((always_inline)), in order to avoid warnings when using newer versions of gcc.
| * Revert opt_abort and opt_junk refactoring.Jason Evans2013-01-231-2/+14
| | | | | | | | | | | | | | | | Revert refactoring of opt_abort and opt_junk declarations. clang accepts the config_*-based declarations (and generates correct code), but gcc complains with: error: initializer element is not constant
| * Fix quoting bug in --without-export implementation.Jason Evans2013-01-231-1/+1
| |
| * Update phony targets.Jason Evans2013-01-221-2/+2
| | | | | | | | Submitted by Frederik Deweerdt.
| * Use config_* instead of JEMALLOC_*.Jason Evans2013-01-222-14/+4
| | | | | | | | Convert a couple of stragglers from JEMALLOC_* to use config_*.
| * Update hash from MurmurHash2 to MurmurHash3.Jason Evans2013-01-226-128/+336
| | | | | | | | | | | | Update hash from MurmurHash2 to MurmurHash3, primarily because the latter generates 128 bits in a single call for no extra cost, which simplifies integration with cuckoo hashing.
| * Fix AC_PATH_PROG() calls to specify default.Jason Evans2013-01-221-4/+4
| | | | | | | | | | | | | | | | | | | | Fix AC_PATH_PROG() calls to specify 'false' as the default, so that if the configure script fails to find a program, the false program is instead called, and an error occurs. Prior to this fix, if xsltproc could not be found, make would not report an error due to the leading -o in the xsltproc invocation. Reported by David Reiss.
| * Add and use JEMALLOC_ALWAYS_INLINE.Jason Evans2013-01-224-51/+59
| | | | | | | | | | Add JEMALLOC_ALWAYS_INLINE and use it to guarantee that the entire fast paths of the primary allocation/deallocation functions are inlined.
| * Tighten valgrind integration.Jason Evans2013-01-223-22/+31
| | | | | | | | | | | | | | Tighten valgrind integration such that immediately after memory is validated or zeroed, valgrind is told to forget the memory's 'defined' state. The only place newly allocated memory should be left marked as 'defined' is in the public functions (e.g. calloc() and realloc()).
| * Avoid validating freshly mapped memory.Jason Evans2013-01-221-17/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Move validation of supposedly zeroed pages from chunk_alloc() to chunk_recycle(). There is little point to validating newly mapped memory returned by chunk_alloc_mmap(), and memory that comes from sbrk() is explicitly zeroed, so there is little risk to assuming that chunk_alloc_dss() actually does the zeroing properly. This relaxation of validation can make a big difference to application startup time and overall system usage on platforms that use jemalloc as the system allocator (namely FreeBSD). Submitted by Ian Lepore <ian@FreeBSD.org>.
| * Fix build break on *BSDGarrett Cooper2012-12-243-1/+11
| | | | | | | | | | | | | | Linux uses alloca.h; many other operating systems define alloca(3) in stdlib.h. Signed-off-by: Garrett Cooper <yanegomi@gmail.com>
| * Improve configure tests for ffslGarrett Cooper2012-12-241-2/+4
| | | | | | | | | | | | | | | | | | | | In particular: - ffsl always returns int, not long, on FreeBSD, Linux, and OSX. - Mute compiler warnings about rv being unused (and the potential for compilers optimizing out the call completely) by dumping the value with printf(3). Signed-off-by: Garrett Cooper <yanegomi@gmail.com>
| * Don't mangle errno with free(3) if utrace(2) failsGarrett Cooper2012-12-241-0/+2
| | | | | | | | | | | | | | This ensures POLA on FreeBSD (at least) as free(3) is generally assumed to not fiddle around with errno. Signed-off-by: Garrett Cooper <yanegomi@gmail.com>
| * Allow to enable ivsalloc independentlyMike Hommey2012-12-232-2/+23
| |
| * Allow to disable the zone allocator on DarwinMike Hommey2012-12-233-2/+26
| |
| * Add clipping support to lg_chunk option processing.Jason Evans2012-12-232-21/+28
| | | | | | | | | | | | | | | | | | Modify processing of the lg_chunk option so that it clips an out-of-range input to the edge of the valid range. This makes it possible to request the minimum possible chunk size without intimate knowledge of allocator internals. Submitted by Ian Lepore (see FreeBSD PR bin/174641).
| * Fix chunk_recycle() Valgrind integration.Jason Evans2012-12-122-3/+4
| | | | | | | | | | | | | | | | Fix chunk_recycyle() to unconditionally inform Valgrind that returned memory is undefined. This fixes Valgrind warnings that would result from a huge allocation being freed, then recycled for use as an arena chunk. The arena code would write metadata to the chunk header, and Valgrind would consider these invalid writes.
| * Fix "arenas.extend" mallctl to return the number of arenas.Jason Evans2012-11-302-9/+16
| | | | | | | | Reported by Mike Hommey.