| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Make mallocx() OOM testing work correctly even on systems that can
allocate the majority of virtual address space in a single contiguous
region.
|
|
|
|
|
|
|
|
|
|
| |
Zero all trailing bytes of large allocations when
--enable-cache-oblivious configure option is enabled. This regression
was introduced by 8a03cf039cd06f9fa6972711195055d865673966 (Implement
cache index randomization for large allocations.).
Zero trailing bytes of huge allocations when resizing from/to a size
class that is not a multiple of the chunk size.
|
|
|
|
|
|
|
| |
Fix prof_tctx_dump_iter() to filter out nodes that were created after
heap profile dumping started. Prior to this fix, spurious entries with
arbitrary object/byte counts could appear in heap profiles, which
resulted in jeprof inaccuracies or failures.
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Run integration tests with MALLOC_CONF="prof:true,prof_active:false" in
addition to MALLOC_CONF="prof:true".
|
| |
| |
| |
| |
| | |
Fix prof_alloc_rollback() to read tdata from thread-specific data rather
than dereferencing a potentially invalid tctx.
|
| |
| |
| |
| |
| |
| |
| | |
Simplify imallocx_prof_sample() to always operate on usize rather than
sometimes using size. This avoids redundant usize computations and
more closely fits the style adopted by i[rx]allocx_prof_sample() to fix
sampling bugs.
|
| |
| |
| |
| |
| | |
Fix irallocx_prof_sample() to always allocate large regions, even when
alignment is non-zero.
|
|/
|
|
|
|
| |
Fix ixallocx_prof_sample() to never modify nor create sampled small
allocations. xallocx() is in general incapable of moving small
allocations, so this fix removes buggy code without loss of generality.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
Systems that do not support chunk split/merge cannot shrink/grow huge
allocations in place.
|
| |
| |
| |
| | |
This resolves #257.
|
| | |
|
| | |
|
| |
| |
| |
| | |
This resolves #274.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Don't assume Bourne shell is in /bin/sh when running size_classes.sh .
Consider __sparcv9 a synonym for __sparc64__ when defining LG_QUANTUM.
This resolves #275.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This change was intended as part of
8f57e3f1aeb86021b3d078b825bc8c42b2a9af6f (Remove check_stress from check
target's dependencies.).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add arena_prof_tctx_reset() and use it instead of arena_prof_tctx_set()
when resetting the tctx pointer during reallocation, which happens
whenever an originally sampled reallocated object is not sampled during
reallocation.
This regression was introduced by
594c759f37c301d0245dc2accf4d4aaf9d202819 (Optimize
arena_prof_tctx_set().)
|
| |
| |
| |
| |
| |
| | |
Fix prof_realloc() to call prof_free_sampled_object() after calling
prof_malloc_sample_object(). Prior to this fix, if tctx and old_tctx
were the same, the tctx could have been prematurely destroyed.
|
| |
| |
| |
| |
| | |
Fix ixallocx_prof() to pass usize_max and zero to ixallocx_prof_sample()
in the correct order.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Make one call to prof_active_get_unlocked() per allocation event, and
use the result throughout the relevant functions that handle an
allocation event. Also add a missing check in prof_realloc(). These
fixes protect allocation events against concurrent prof_active changes.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Fix ixallocx_prof() to clamp the extra parameter if size+extra would
overflow HUGE_MAXCLASS.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prior to this change the debug build/test command needed to look like:
make all tests && make check_unit && make check_integration && \
make check_integration_prof
This is now simply:
make check
Rename the check_stress target to stress.
|
| |
| |
| |
| |
| | |
arena_maxclass is no longer an appropriate name, because arenas also
manage huge allocations.
|
| |
| |
| |
| |
| | |
Fix xallocx() bugs related to the 'extra' parameter when specified as
non-zero.
|
| |
| |
| |
| |
| |
| |
| | |
Fix heap profiling to distinguish among otherwise identical sample sites
with interposed resets (triggered via the "prof.reset" mallctl). This
bug could cause data structure corruption that would most likely result
in a segfault.
|
| | |
|
| |
| |
| |
| | |
This resolves #269.
|
| |
| |
| |
| |
| |
| |
| | |
This didn't cause bad code generation in the one case spot-checked (gcc
4.8.1), but had the potential to to so. This bug was introduced by
594c759f37c301d0245dc2accf4d4aaf9d202819 (Optimize
arena_prof_tctx_set().).
|
| |
| |
| |
| |
| | |
Optimize arena_prof_tctx_set() to avoid reading run metadata when
deciding whether it's actually necessary to write.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Fix TLS configuration such that it is enabled by default for platforms
on which it works correctly. This regression was introduced by
ac5db02034c01357a4ce90504886046a58117921 (Make --enable-tls and
--enable-lazy-lock take precedence over configure.ac-hardcoded
defaults).
|
| |
| |
| |
| |
| |
| |
| |
| | |
When junk filling is enabled, shrinking an allocation fills the bytes
that were previously allocated but now aren't. Purging the chunk before
doing that is just a waste of time.
This resolves #260.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix chunk purge hook calls for in-place huge shrinking reallocation to
specify the old chunk size rather than the new chunk size. This bug
caused no correctness issues for the default chunk purge function, but
was visible to custom functions set via the "arena.<i>.chunk_hooks"
mallctl.
This resolves #264.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix arenas_cache_cleanup() and arena_get_hard() to handle
allocation/deallocation within the application's thread-specific data
cleanup functions even after arenas_cache is torn down.
This is a more general fix that complements
45e9f66c280e1ba8bebf7bed387a43bc9e45536d (Fix arenas_cache_cleanup().).
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add JEMALLOC_CXX_THROW to the memalign() function prototype, in order to
match glibc and avoid compilation errors when including both
jemalloc/jemalloc.h and malloc.h in C++ code.
This change was unintentionally omitted from
ae93d6bf364e9db9f9ee69c3e5f9df110d8685a4 (Avoid function prototype
incompatibilities.).
|
| |
| |
| |
| |
| |
| | |
Fix arenas_cache_cleanup() to handle allocation/deallocation within the
application's thread-specific data cleanup functions even after
arenas_cache is torn down.
|
| |
| |
| |
| | |
Reported by Ingvar Hagelund.
|
| |
| |
| |
| | |
This resolves #256.
|
|/
|
|
|
|
|
|
| |
Don't bitshift by negative amounts when encoding/decoding run sizes in
chunk header maps. This affected systems with page sizes greater than 8
KiB.
Reported by Ingvar Hagelund <ingvar@redpill-linpro.com>.
|
|\ |
|