| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
Add mallctl interfaces for profiling parameters.
Fix a file descriptor leak in heap profile dumping.
|
|
|
|
|
| |
If JEMALLOC_PROF_PREFIX is set in the environment, use it as the
filename prefix when dumping heap profiles, rather than "jeprof".
|
| |
|
|
|
|
|
| |
Bootstrap profiling in three stages, so that it is usable by the time
the first application allocation occurs.
|
|
|
|
|
|
|
|
|
| |
Add the --disable-prof-libgcc configure option, and add backtracing
based on libgcc, which is used by default.
Fix a bug in hash().
Fix various configuration-dependent compilation errors.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add the --enable-prof and --enable-prof-libunwind configure options.
Add the B/b, F/f, I/i, L/l, and U/u JEMALLOC_OPTIONS.
Interval-based profile dump triggering is not yet implemented.
Add supporting generic code:
* Add memory barriers.
* Add prn (LCG PRNG).
* Add hash (Murmur hash function).
* Add ckh (cuckoo hash tables).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a custom small_size2bin table was required due to non-default size
class settings, memory allocation prior to initializing chunk parameters
would cause a crash due to division by 0. The fix re-orders the various
*_boot() function calls.
Bootstrapping is simpler now than it was before the base allocator
started just using the chunk allocator directly. This allows
arena_boot[01]() to be combined.
Add error detection for pthread_atfork() and atexit() function calls.
|
|
|
|
|
| |
This feature caused significant performance degradation, and the
fragmentation reduction benefits were difficult to quantify.
|
|
|
|
|
|
|
|
|
|
|
| |
Fix a type mismatch for "arenas.nlruns" mallctl access. This bug caused
a crash during statistics printing on 64-bit systems.
Fix the "stats.active" mallctl to include active memory in huge objects.
Report active bytes for the whole application, as well as per arena.
Remove several unused variables.
|
|
|
|
|
|
|
|
| |
A missing 'else' in chunk_alloc_mmap() caused an extra chunk to be
allocated every time the optimistic alignment path was entered, since
the following block would always be executed immediately afterward.
This chunk leak caused no increase in physical memory usage, but virtual
memory could grow until resource exaustion caused allocation failures.
|
|
|
|
| |
Initialize malloc before calling into the ctl_*() functions.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace chunk stats code that was missing locking; this fixes a race
condition that could corrupt chunk statistics.
Converting malloc_stats_print() to use mallctl*().
Add a missing semicolon in th DSS code.
Convert malloc_tcache_flush() to a mallctl.
Convert malloc_swap_enable() to a set of mallctl's.
|
|
|
|
|
|
| |
Revert to simpler lock acquistion/release code in
malloc_{pre,post}fork(), since dynamic arena rebalancing is no longer
implemented.
|
| |
|
|
|
|
|
|
|
| |
Use optional zeroing in arena_chunk_alloc() to avoid needless zeroing of
chunks. This is particularly important in the context of swapfile and
DSS allocation, since a long-lived application may commonly recycle
chunks.
|
|
|
|
|
|
|
|
|
|
|
| |
Clean up whitespace.
Lock access of swap_avail when printing stats.
Use inttypes.h for portable printf() format specifiers, specifically for
uint64_t (PRIu64).
Change highchunks and curchunks stats from (unsigned long) to (size_t).
|
|
|
|
|
|
|
|
| |
Add malloc_swap_enable().
Add the O/o JEMALLOC_OPTIONS flags, which control memory overcommit.
Fix mapped memory stats reporting for arenas.
|
|
|
|
|
| |
Add the w4opaque argument malloc_message() and malloc_stats_print(), and
propagate the change through all the internal APIs as necessary.
|
|
|
|
| |
Add the "m" and "a" opts flags for malloc_stats_print().
|
|\ |
|
| | |
|
|/
|
|
| |
Add malloc_cprintf() and malloc_vcprintf().
|
|
|
|
| |
Fix some bugs in the Makefile's install target.
|
|
|
|
|
|
|
|
|
| |
Fix a stats bug in large object curruns accounting.
Replace tcache_bin_fill() with arena_tcache_fill(), and fix a bug in an OOM
error path.
Fix API name mangling to coexist with __attribute__((malloc)).
|
|
|
|
| |
destructors may run after tcache_tsd's.
|
| |
|
| |
|
|
|
|
|
|
| |
rather than just enabling/disabling the tcache.
Fix an off-by-one bug in large object stats recording.
|
|
|
|
| |
just enabling/disabling GC.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enhance bin run deallocation to avoid marking all pages as dirty, since the
dirty bits are already correct for all but the first page, due to the use of
arena_run_rc_{incr,decr}(). This tends to dramatically reduce the number of
pages that are marked dirty.
Modify arena_bin_run_size_calc() to assure that bin run headers never exceed
one page. In practice, this can't happen unless hard-coded constants (related
to RUN_MAX_OVRHD) are modified, but the dirty page tracking code assumes bin
run headers never extend past the first page, so it seems worth making this a
universally valid assumption.
|
|
|
|
|
| |
Incrementally merge tcache stats, so that malloc_stats_print() always reports
at least most events that have occurred thus far.
|
|
|
|
|
|
|
|
|
|
|
| |
Use JEMALLOC_ATTR(tls_model("initial-exec)) instead of -ftls-model=initial-exec
so that libjemalloc_pic.a can be directly linked into another library without
needing linker options changes.
Add attributes to malloc, calloc, and posix_memalign, for compatibility with
glibc's declarations.
Add function prototypes for the standard malloc(3) API.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Add dirty page tracking for pages within active small/medium object runs.
Reduce chunks_dirty red-black tree operations via lazy updating.
|
| |
|
|
|
|
| |
Remove the default definition for SIZEOF_INT_2POW.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Add the 'G'/'g' and 'H'/'h' MALLOC_OPTIONS flags.
Add the malloc_tcache_flush() function.
Disable thread-specific caching until the application goes multi-threaded.
|
|
|
|
|
|
|
|
|
|
|
| |
Add the 'M' and 'm' MALLOC_OPTIONS flags, which control the maximum medium size
class.
Relax the cap on small/medium run size to arena_maxclass.
Reduce arena_run_reg_dalloc() integer division code complexity.
Increase the default chunk size from 1MiB to 4MiB.
|
|
|
|
| |
and heap allocation are always enabled.
|
| |
|
| |
|
| |
|
|
|
|
| |
Rename jemalloc_options-->malloc_options and jemalloc_message-->malloc_message.
|