* Thu Jun 09 2016 idonmez@suse.com
- Update to version 4.2.1
* Fix bootstrapping issues for configurations that require
allocation during tsd initialization (e.g. --disable-tls).
* Fix gettimeofday() version of nstime_update().
* Fix Valgrind regressions in calloc() and chunk_alloc_wrapper().
* Fix potential VM map fragmentation regression.
* Fix opt_zero-triggered in-place huge reallocation zeroing.
* Fix heap profiling context leaks in reallocation edge cases.
* Fri May 13 2016 idonmez@suse.com
- Update to version 4.2.0
* Add the arena.<i>.reset mallctl, which makes it possible to
discard all of an arena's allocations in a single operation.
* Add the stats.retained and stats.arenas.<i>.retained statistics.
* Add the --with-version configure option.
* Support --with-lg-page values larger than actual page size.
* Use pairing heaps rather than red-black trees for various hot
data structures.
* Streamline fast paths of rtree operations.
* Optimize the fast paths of calloc() and [m,d,sd]allocx().
* Decommit unused virtual memory if the OS does not overcommit.
* Specify MAP_NORESERVE on Linux if [heuristic] overcommit is active,
in order to avoid unfortunate interactions during fork(2).
* Fix chunk accounting related to triggering gdump profiles.
* Link against librt for clock_gettime(2) if glibc < 2.17.
* Scale leak report summary according to sampling probability.
* Wed May 04 2016 idonmez@suse.com
- Update to version 4.1.1
* Fix hashing functions to avoid unaligned memory accesses
(and resulting crashes). This is relevant at least to some
ARM-based platforms.
* Fix fork()-related lock rank ordering reversals. These reversals
were unlikely to cause deadlocks in practice except when heap
profiling was enabled and active.
* Fix various chunk leaks in OOM code paths.
* Fix malloc_stats_print() to print opt.narenas correctly.
* Fix a variety of test failures that were due to test fragility
rather than core bugs.
- Remove disable_oom_test.patch, fixed upstream.
- Run testsuite in parallel where possible
* Wed Apr 20 2016 jslaby@suse.com
- add disable_oom_test.patch
* Mon Feb 29 2016 idonmez@suse.com
- Update to version 4.1.0
New features:
* Implement decay-based unused dirty page purging, a major optimization
with mallctl API impact. This is an alternative to the existing ratio-based
unused dirty page purging, and is intended to eventually become the sole
purging mechanism. New mallctls:
+ opt.purge
+ opt.decay_time
+ arena.<i>.decay
+ arena.<i>.decay_time
+ arenas.decay_time
+ stats.arenas.<i>.decay_time
* Add --with-malloc-conf, which makes it possible to embed a default options
string during configuration. This was motivated by the desire to specify
- -with-malloc-conf=purge:decay , since the default must remain purge:ratio
until the 5.0.0 release.
* Make *allocx() size class overflow behavior defined. The maximum size
class is now less thanPTRDIFF_MAX to protect applications against numerical
overflow, and all allocation functions are guaranteed to indicate errors
rather than potentially crashing if the request size exceeds the maximum size class.
* jeprof:
+ Add raw heap profile support.
+ Add --retain and --exclude for backtrace symbol filtering.
Optimizations:
* Optimize the fast path to combine various bootstrapping and configuration
checks and execute more streamlined code in the common case.
* Use linear scan for small bitmaps (used for small object tracking).
In addition to speeding up bitmap operations on 64-bit systems, this reduces
allocator metadata overhead by approximately 0.2%.
* Separate arena_avail trees, which substantially speeds up run tree operations.
* Use memoization (boot-time-computed table) for run quantization. Separate
arena_avail trees reduced the importance of this optimization.
* Attempt mmap-based in-place huge reallocation. This can dramatically speed up
incremental huge reallocation.
Incompatible changes:
* Make opt.narenas unsigned rather than size_t.
Bug fixes:
* Fix stats.cactive accounting regression.
* Handle unaligned keys in hash(). This caused problems for some ARM systems.
* Refactor arenas array. In addition to fixing a fork-related deadlock,
this makes arena lookups faster and simpler.
* Move retained memory allocation out of the default chunk allocation function,
to a location that gets executed even if the application installs a custom chunk
allocation function. This resolves a virtual memory leak.
* Fix a potential tsd cleanup leak.
* Fix run quantization. In practice this bug had no impact unless applications
requested memory with alignment exceeding one page.
* Fix LinuxThreads-specific bootstrapping deadlock. (Cosmin Paraschiv)
* jeprof:
+ Don't discard curl options if timeout is not defined. (@djwatson)
+ Detect failed profile fetches. (@djwatson)
* Fix stats.arenas.<i>.{dss,lg_dirty_mult,decay_time,pactive,pdirty} for --disable-stats case.
* Sun Feb 14 2016 olaf@aepfle.de
- Fix build/test in SLE_11 by using gcc48
* Sat Oct 24 2015 idonmez@suse.com
- Update to version 4.0.4
* Fix xallocx(..., MALLOCX_ZERO to zero the last full trailing page
of large allocations that have been randomly assigned an offset of
0 when --enable-cache-oblivious configure option is enabled.
* Fri Sep 25 2015 idonmez@suse.com
- Update to version 4.0.3
* See included ChangeLog for complete changes.
* Mon Mar 31 2014 idonmez@suse.com
- Update to 3.6.0
* Fix a regression in arena_chunk_alloc() that caused crashes
during small/large allocation if chunk allocation failed.
* Fix backtracing for gcc intrinsics-based backtracing by specifying
- fno-omit-frame-pointer to gcc.
* Use dss allocation precedence for huge allocations as well as
small/large allocations.
* Testsuite fixes
- Drop jemalloc-fix-backtracing.patch, merged upstream.
* Mon Mar 31 2014 idonmez@suse.com
- Enable profiling
- Add jemalloc-fix-backtracing.patch to fix profiling tests on x86
(the failures were triggered due to profiling support.)
* Wed Feb 26 2014 idonmez@suse.com
- Update to version 3.5.1
* Fix junk filling for mremap(2)-based huge reallocation.
* Unit test fixes
- Remove jemalloc-fix-32bit-tests.patch, fixed upstream.
* Wed Jan 29 2014 idonmez@suse.com
- Add jemalloc-fix-32bit-tests.patch to fix test failures on i586
* Fri Jan 24 2014 idonmez@suse.com
- Update to version 3.5.0
* Add the *allocx() API, which is a successor to the experimental *allocm()
API. The *allocx() functions are slightly simpler to use because they have
fewer parameters, they directly return the results of primary interest, and
mallocx()/rallocx() avoid the strict aliasing pitfall that
allocm()/rallocx() share with posix_memalign(). Note that *allocm() is
slated for removal in the next non-bugfix release.
* Add support for LinuxThreads.
* Unless heap profiling is enabled, disable floating point code and don't link
with libm. This, in combination with e.g. EXTRA_CFLAGS=-mno-sse on x64
systems, makes it possible to completely disable floating point register
use. Some versions of glibc neglect to save/restore caller-saved floating
point registers during dynamic lazy symbol loading, and the symbol loading
code uses whatever malloc the application happens to have linked/loaded
with, the result being potential floating point register corruption.
* Report ENOMEM rather than EINVAL if an OOM occurs during heap profiling
backtrace creation in imemalign(). This bug impacted posix_memalign() and
aligned_alloc().
* Fix a file descriptor leak in a prof_dump_maps() error path.
* Fix prof_dump() to close the dump file descriptor for all relevant error
paths.
* Fix rallocm() to use the arena specified by the ALLOCM_ARENA(s) flag for
allocation, not just deallocation.
* Fix a data race for large allocation stats counters.
* Fix a potential infinite loop during thread exit. This bug occurred on
Solaris, and could affect other platforms with similar pthreads TSD
implementations.
* Don't junk-fill reallocations unless usable size changes. This fixes a
violation of the *allocx()/*allocm() semantics.
* Fix growing large reallocation to junk fill new space.
* Fix huge deallocation to junk fill when munmap is disabled.
* Change the default private namespace prefix from empty to je_, and change
- -with-private-namespace-prefix so that it prepends an additional prefix
rather than replacing je_. This reduces the likelihood of applications
which statically link jemalloc experiencing symbol name collisions.
* Add missing private namespace mangling (relevant when
- -with-private-namespace is specified).
* Add and use JEMALLOC_INLINE_C so that static inline functions are marked as
static even for debug builds.
* Add a missing mutex unlock in a malloc_init_hard() error path. In practice
this error path is never executed.
* Fix numerous bugs in malloc_strotumax() error handling/reporting. These
bugs had no impact except for malformed inputs.
* Fix numerous bugs in malloc_snprintf(). These bugs were not exercised by
existing calls, so they had no impact.
* Tue Oct 22 2013 idonmez@suse.com
- Update to version 3.4.1
* Fix a race in the "arenas.extend" mallctl that could cause memory
corruption of internal data structures and subsequent crashes.
* Fix Valgrind integration flaws that caused Valgrind warnings about
reads of uninitialized memory in:
+ arena chunk headers
+ internal zero-initialized data structures
* Preserve errno during the first allocation. A readlink(2) call
during initialization fails unless /etc/malloc.conf exists,
so errno was typically set during the first allocation prior to this fix.
* Fix compilation warnings reported by gcc 4.8.1
* Thu Jun 06 2013 idonmez@suse.com
- Rename pprof to pprof-jemalloc to prevent conflict with gperftools
* Wed Jun 05 2013 idonmez@suse.com
- Update to version 3.4.0
* Support for aarch64
* Fix race-triggered deadlocks in chunk_record()
* Thu Mar 07 2013 idonmez@suse.com
- Update to version 3.3.1
* Fix a locking order bug that could cause deadlock during fork
if heap profiling were enabled.
* Fix a chunk recycling bug that could cause the allocator to lose
track of whether a chunk was zeroed.
* Fix TLS-related memory corruption that could occur during thread
exit if the thread never allocated memory. Only the quarantine
and prof facilities were susceptible.
* 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 Valgrind integration to annotate all internally allocated
memory in a way that keeps Valgrind happy about internal data
structure access.
* Fix building for s390 systems.
- Implement %check
* Thu Jan 24 2013 idonmez@suse.com
- Update to version 3.3.0
* Add clipping support to lg_chunk option processing.
* Add the --enable-ivsalloc option.
* Add the --without-export option.
* Add the --disable-zone-allocator option.
* Fix "arenas.extend" mallctl to output the number of arenas.
* Fix chunk_recycyle() to unconditionally inform Valgrind that
returned memory is undefined.
* Fix build break on FreeBSD related to alloca.h.
* Wed Nov 14 2012 jengelh@inai.de
- Update to new upstream release 3.2.0
* Fix deadlock in the "arenas.purge" mallctl.
- Update to new upstream release 3.1.0
* Auto-detect whether running inside Valgrind, thus removing the
need to manually specify MALLOC_CONF=valgrind:true.
* Disable tcache by default if running inside Valgrind, in order to
avoid making unallocated objects appear reachable to Valgrind.
* Fix heap profiling crash if sampled object is freed via realloc(p, 0).
* Tue Sep 04 2012 jengelh@inai.de
- Update to new upstream release 3.0.0
* Implement Valgrind support, redzones, and quarantine.
* Add support for additional architectures: MIPS, SH4, Tilera
* Add nallocm(), which rounds a request size up to the nearest size
class without actually allocating.
* Implement aligned_alloc()
* Add the "thread.tcache.enabled" and "opt.prof_final" mallctls.
* Update pprof (from gperftools 2.0).
* (For more, see the ChangeLog file in this RPM package.)