* 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.
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=39
- 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.
OBS-URL: https://build.opensuse.org/request/show/362831
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/jemalloc?expand=0&rev=15
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.
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=33
- 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.
- Enable profiling
- Add jemalloc-fix-backtracing.patch to fix profiling tests on x86
(the failures were triggered due to profiling support.)
OBS-URL: https://build.opensuse.org/request/show/228353
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/jemalloc?expand=0&rev=10
* 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.
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=23
- Add jemalloc-fix-32bit-tests.patch to fix test failures on i586
- 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
OBS-URL: https://build.opensuse.org/request/show/215630
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/jemalloc?expand=0&rev=8
* 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.
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=17
- 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
- Rename pprof to pprof-jemalloc to prevent conflict with gperftools
OBS-URL: https://build.opensuse.org/request/show/204266
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/jemalloc?expand=0&rev=7
* 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
- Rename pprof to pprof-jemalloc to prevent conflict with gperftools
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=15
- 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
OBS-URL: https://build.opensuse.org/request/show/157950
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/jemalloc?expand=0&rev=4
* 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
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=10
Note to reviewer: This is a leaf package.
- 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.
OBS-URL: https://build.opensuse.org/request/show/149780
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/jemalloc?expand=0&rev=3
* 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.
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=8
- 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.)
OBS-URL: https://build.opensuse.org/request/show/132457
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/jemalloc?expand=0&rev=5