History log of /external/jemalloc/include/jemalloc/internal/private_namespace.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9ebe2acb722ad8e29179cfbff35547f607e0f532 01-Jul-2014 Christopher Ferris <cferris@google.com> Update header files from new jemalloc changes.

Also, fix gitignore, not to ignore generated headers.

Change-Id: I6c781ae85112c2098d6808adba55c0c8e05e5ecc
/external/jemalloc/include/jemalloc/internal/private_namespace.h
5daf4e4a8d52ac2d5b40b0d12ce5721c6b9676e7 23-Apr-2014 Christopher Ferris <cferris@google.com> Initial commit.

This change allows jemalloc to compile for all known targets.

Bug: 981363
Change-Id: I847f653daa8430ae8fba90c8365aa0d11f7a4897
/external/jemalloc/include/jemalloc/internal/private_namespace.h
86abd0dcd8e478759fe409d338d11558c4cec427 01-Dec-2013 Jason Evans <jasone@canonware.com> Refactor to support more varied testing.

Refactor the test harness to support three types of tests:
- unit: White box unit tests. These tests have full access to all
internal jemalloc library symbols. Though in actuality all symbols
are prefixed by jet_, macro-based name mangling abstracts this away
from test code.
- integration: Black box integration tests. These tests link with
the installable shared jemalloc library, and with the exception of
some utility code and configure-generated macro definitions, they have
no access to jemalloc internals.
- stress: Black box stress tests. These tests link with the installable
shared jemalloc library, as well as with an internal allocator with
symbols prefixed by jet_ (same as for unit tests) that can be used to
allocate data structures that are internal to the test code.

Move existing tests into test/{unit,integration}/ as appropriate.

Split out internal parts of jemalloc_defs.h.in and put them in
jemalloc_internal_defs.h.in. This reduces internals exposure to
applications that #include <jemalloc/jemalloc.h>.

Refactor jemalloc.h header generation so that a single header file
results, and the prototypes can be used to generate jet_ prototypes for
tests. Split jemalloc.h.in into multiple parts (jemalloc_defs.h.in,
jemalloc_macros.h.in, jemalloc_protos.h.in, jemalloc_mangle.h.in) and
use a shell script to generate a unified jemalloc.h at configure time.

Change the default private namespace prefix from "" to "je_".

Add missing private namespace mangling.

Remove hard-coded private_namespace.h. Instead generate it and
private_unnamespace.h from private_symbols.txt. Use similar logic for
public symbols, which aids in name mangling for jet_ symbols.

Add test_warn() and test_fail(). Replace existing exit(1) calls with
test_fail() calls.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
87a02d2bb18dbcb2955541b849bc95862e864803 20-Oct-2013 Jason Evans <jasone@canonware.com> Fix a Valgrind integration flaw.

Fix a Valgrind integration flaw that caused Valgrind warnings about
reads of uninitialized memory in arena chunk headers.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
bbe29d374d0fa5f4684621f16c099294e56c26ef 31-Jan-2013 Jason Evans <je@fb.com> Fix potential TLS-related memory corruption.

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).
/external/jemalloc/include/jemalloc/internal/private_namespace.h
ae03bf6a57f0dd6a009288fa6477a300cabf6d5e 22-Jan-2013 Jason Evans <jasone@canonware.com> Update hash from MurmurHash2 to MurmurHash3.

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.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
a3b3386ddde8048b9d6b54c397bb93da5e806cef 13-Nov-2012 Jason Evans <je@fb.com> Avoid arena_prof_accum()-related locking when possible.

Refactor arena_prof_accum() and its callers to avoid arena locking when
prof_interval is 0 (as when profiling is disabled).

Reported by Ben Maurer.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
609ae595f0358157b19311b0f9f9591db7cee705 11-Oct-2012 Jason Evans <je@fb.com> Add arena-specific and selective dss allocation.

Add the "arenas.extend" mallctl, so that it is possible to create new
arenas that are outside the set that jemalloc automatically multiplexes
threads onto.

Add the ALLOCM_ARENA() flag for {,r,d}allocm(), so that it is possible
to explicitly allocate from a particular arena.

Add the "opt.dss" mallctl, which controls the default precedence of dss
allocation relative to mmap allocation.

Add the "arena.<i>.dss" mallctl, which makes it possible to set the
default dss precedence on a per arena or global basis.

Add the "arena.<i>.purge" mallctl, which obsoletes "arenas.purge".

Add the "stats.arenas.<i>.dss" mallctl.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
20f1fc95adb35ea63dc61f47f2b0ffbd37d39f32 09-Oct-2012 Jason Evans <je@fb.com> Fix fork(2)-related deadlocks.

Add a library constructor for jemalloc that initializes the allocator.
This fixes a race that could occur if threads were created by the main
thread prior to any memory allocation, followed by fork(2), and then
memory allocation in the child process.

Fix the prefork/postfork functions to acquire/release the ctl, prof, and
rtree mutexes. This fixes various fork() child process deadlocks, but
one possible deadlock remains (intentionally) unaddressed: prof
backtracing can acquire runtime library mutexes, so deadlock is still
possible if heap profiling is enabled during fork(). This deadlock is
known to be a real issue in at least the case of libgcc-based
backtracing.

Reported by tfengjun.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
80737c3323dabc45232affcaeb99ac2bad6ea647 03-May-2012 Jason Evans <je@fb.com> Further optimize and harden arena_salloc().

Further optimize arena_salloc() to only look at the binind chunk map
bits in the common case.

Add more sanity checks to arena_salloc() that detect chunk map
inconsistencies for large allocations (whether due to allocator bugs or
application bugs).
/external/jemalloc/include/jemalloc/internal/private_namespace.h
9a7944f8aba8806c2806c7bb4d61b1b6df59f044 02-May-2012 Jason Evans <jasone@canonware.com> Update private namespace mangling.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
203484e2ea267e068a68fd2922263f0ff1d5ac6f 02-May-2012 Jason Evans <je@fb.com> Optimize malloc() and free() fast paths.

Embed the bin index for small page runs into the chunk page map, in
order to omit [...] in the following dependent load sequence:
ptr-->mapelm-->[run-->bin-->]bin_info

Move various non-critcal code out of the inlined function chain into
helper functions (tcache_event_hard(), arena_dalloc_small(), and
locking).
/external/jemalloc/include/jemalloc/internal/private_namespace.h
52386b2dc689db3bf71307424c4e1a2b7044c363 23-Apr-2012 Jason Evans <je@fb.com> Fix heap profiling bugs.

Fix a potential deadlock that could occur during interval- and
growth-triggered heap profile dumps.

Fix an off-by-one heap profile statistics bug that could be observed in
interval- and growth-triggered heap profiles.

Fix heap profile dump filename sequence numbers (regression during
conversion to malloc_snprintf()).
/external/jemalloc/include/jemalloc/internal/private_namespace.h
a8f8d7540d66ddee7337db80c92890916e1063ca 22-Apr-2012 Jason Evans <jasone@canonware.com> Remove mmap_unaligned.

Remove mmap_unaligned, which was used to heuristically decide whether to
optimistically call mmap() in such a way that could reduce the total
number of system calls. If I remember correctly, the intention of
mmap_unaligned was to avoid always executing the slow path in the
presence of ASLR. However, that reasoning seems to have been based on a
flawed understanding of how ASLR actually works. Although ASLR
apparently causes mmap() to ignore address requests, it does not cause
total placement randomness, so there is a reasonable expectation that
iterative mmap() calls will start returning chunk-aligned mappings once
the first chunk has been properly aligned.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
918d6e20b760da13776ca0faf8bc00b4647a482c 20-Apr-2012 Jason Evans <jasone@canonware.com> Add missing private namespace mangling.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
7d20fbc44a28209e8b70e2d8efe12254962c6fd6 20-Apr-2012 Jason Evans <jasone@canonware.com> Don't mangle pthread_create().

Don't mangle pthread_create(); it's an exported symbol when defined.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
86e58583bb443fcfe885a1a96b466ab5933cb443 19-Apr-2012 Jason Evans <jasone@canonware.com> Make special FreeBSD function overrides visible.

Make special FreeBSD libc/libthr function overrides for
_malloc_prefork(), _malloc_postfork(), and _malloc_thread_cleanup()
visible.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
666c5bf7a8baaa842da69cb402948411432a9d00 18-Apr-2012 Mike Hommey <mh@glandium.org> Add a pages_purge function to wrap madvise(JEMALLOC_MADV_PURGE) calls

This will be used to implement the feature on mingw, which doesn't have
madvise.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
1dbfd5a209bed1a3d4bacaa31726a4179a4f1215 14-Apr-2012 Jason Evans <jasone@canonware.com> Add/remove missing/cruft entries to/from private_namespace.h.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
7ca0fdfb85b2a9fc7a112e158892c098e004385b 13-Apr-2012 Jason Evans <je@fb.com> Disable munmap() if it causes VM map holes.

Add a configure test to determine whether common mmap()/munmap()
patterns cause VM map holes, and only use munmap() to discard unused
chunks if the problem does not exist.

Unify the chunk caching for mmap and dss.

Fix options processing to limit lg_chunk to be large enough that
redzones will always fit.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
5ff709c264e52651de25b788692c62ff1f6f389c 12-Apr-2012 Jason Evans <jasone@canonware.com> Normalize aligned allocation algorithms.

Normalize arena_palloc(), chunk_alloc_mmap_slow(), and
chunk_recycle_dss() to use the same algorithm for trimming
over-allocation.

Add the ALIGNMENT_ADDR2BASE(), ALIGNMENT_ADDR2OFFSET(), and
ALIGNMENT_CEILING() macros, and use them where appropriate.

Remove the run_size_p parameter from sa2u().

Fix a potential deadlock in chunk_recycle_dss() that was introduced by
eae269036c9f702d9fa9be497a1a2aa1be13a29e (Add alignment support to
chunk_alloc()).
/external/jemalloc/include/jemalloc/internal/private_namespace.h
122449b073bcbaa504c4f592ea2d733503c272d2 06-Apr-2012 Jason Evans <je@fb.com> Implement Valgrind support, redzones, and quarantine.

Implement Valgrind support, as well as the redzone and quarantine
features, which help Valgrind detect memory errors. Redzones are only
implemented for small objects because the changes necessary to support
redzones around large and huge objects are complicated by in-place
reallocation, to the point that it isn't clear that the maintenance
burden is worth the incremental improvement to Valgrind support.

Merge arena_salloc() and arena_salloc_demote().

Refactor i[v]salloc() to expose the 'demote' option.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
b147611b5253921a873191bb0589d3b18f613946 05-Apr-2012 Jason Evans <jasone@canonware.com> Add utrace(2)-based tracing (--enable-utrace).
/external/jemalloc/include/jemalloc/internal/private_namespace.h
71a93b8725fb52ae393ab88e2fccd5afa84c66a0 27-Mar-2012 Mike Hommey <mh@glandium.org> Move zone registration to zone.c
/external/jemalloc/include/jemalloc/internal/private_namespace.h
cd9a1346e96f71bdecdc654ea50fc62d76371e74 22-Mar-2012 Jason Evans <je@fb.com> Implement tsd.

Implement tsd, which is a TLS/TSD abstraction that uses one or both
internally. Modify bootstrapping such that no tsd's are utilized until
allocation is safe.

Remove malloc_[v]tprintf(), and use malloc_snprintf() instead.

Fix %p argument size handling in malloc_vsnprintf().

Fix a long-standing statistics-related bug in the "thread.arena"
mallctl that could cause crashes due to linked list corruption.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
4e2e3dd9cf19ed5991938a708a8b50611aa5bbf8 14-Mar-2012 Jason Evans <je@fb.com> Fix fork-related bugs.

Acquire/release arena bin locks as part of the prefork/postfork. This
bug made deadlock in the child between fork and exec a possibility.

Split jemalloc_postfork() into jemalloc_postfork_{parent,child}() so
that the child can reinitialize mutexes rather than unlocking them. In
practice, this bug tended not to cause problems.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
d81e4bdd5c991bd5642c8b859ef1f752b51cd9be 06-Mar-2012 Jason Evans <je@fb.com> Implement malloc_vsnprintf().

Implement malloc_vsnprintf() (a subset of vsnprintf(3)) as well as
several other printing functions based on it, so that formatted printing
can be relied upon without concern for inducing a dependency on floating
point runtime support. Replace malloc_write() calls with
malloc_*printf() where doing so simplifies the code.

Add name mangling for library-private symbols in the data and BSS
sections. Adjust CONF_HANDLE_*() macros in malloc_conf_init() to expose
all opt_* variable use to cpp so that proper mangling occurs.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
4162627757889ea999264c2ddbc3c354768774e2 13-Feb-2012 Jason Evans <je@fb.com> Remove the swap feature.

Remove the swap feature, which enabled per application swap files. In
practice this feature has not proven itself useful to users.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
a507004d294ad0c78b4d01559479620ebb272a49 12-Aug-2011 Jason Evans <je@fb.com> Fix off-by-one backtracing issues.

Rewrite prof_alloc_prep() as a cpp macro, PROF_ALLOC_PREP(), in order to
remove any doubt as to whether an additional stack frame is created.
Prior to this change, it was assumed that inlining would reduce the
total number of frames in the backtrace, but in practice behavior wasn't
completely predictable.

Create imemalign() and call it from posix_memalign(), memalign(), and
valloc(), so that all entry points require the same number of stack
frames to be ignored during backtracing.
/external/jemalloc/include/jemalloc/internal/private_namespace.h
746e77a06bf1089d50fbd64e1759b96c1cfbd9f5 31-Jul-2011 Jason Evans <je@fb.com> Add the --with-private-namespace option.

Add the --with-private-namespace option to make it possible to work
around library-private symbols being exposed in static libraries.
/external/jemalloc/include/jemalloc/internal/private_namespace.h