History log of /external/jemalloc/test/unit/junk.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e2bcf037d445a84a71c7997670819ebd0a893b4a 13-Oct-2016 Jason Evans <jasone@canonware.com> Make dss operations lockless.

Rather than protecting dss operations with a mutex, use atomic
operations. This has negligible impact on synchronization overhead
during typical dss allocation, but is a substantial improvement for
chunk_in_dss() and the newly added chunk_dss_mergeable(), which can be
called multiple times during chunk deallocations.

This change also has the advantage of avoiding tsd in deallocation paths
associated with purging, which resolves potential deadlocks during
thread exit due to attempted tsd resurrection.

This resolves #425.
/external/jemalloc/test/unit/junk.c
c1e00ef2a6442d1d047950247c757821560db329 11-May-2016 Jason Evans <jasone@canonware.com> Resolve bootstrapping issues when embedded in FreeBSD libc.

b2c0d6322d2307458ae2b28545f8a5c9903d7ef5 (Add witness, a simple online
locking validator.) caused a broad propagation of tsd throughout the
internal API, but tsd_fetch() was designed to fail prior to tsd
bootstrapping. Fix this by splitting tsd_t into non-nullable tsd_t and
nullable tsdn_t, and modifying all internal APIs that do not critically
rely on tsd to take nullable pointers. Furthermore, add the
tsd_booted_get() function so that tsdn_fetch() can probe whether tsd
bootstrapping is complete and return NULL if not. All dangerous
conversions of nullable pointers are tsdn_tsd() calls that assert-fail
on invalid conversion.
/external/jemalloc/test/unit/junk.c
0c12dcabc59ea9c95fc38197e7c4bc44663b0a26 07-May-2016 Jason Evans <jasone@canonware.com> Fix tsd bootstrapping for a0malloc().
/external/jemalloc/test/unit/junk.c
b2c0d6322d2307458ae2b28545f8a5c9903d7ef5 14-Apr-2016 Jason Evans <jasone@canonware.com> Add witness, a simple online locking validator.

This resolves #358.
/external/jemalloc/test/unit/junk.c
96aa67aca89725f0b1df3257421a3d0a48eb2700 05-Apr-2016 Jason Evans <jasone@canonware.com> Clean up char vs. uint8_t in junk filling code.

Consistently use uint8_t rather than char for junk filling code.
/external/jemalloc/test/unit/junk.c
a82070ef5fc3aa81fda43086cdcc22bfa826b894 28-Mar-2016 Chris Peterson <cpeterson@mozilla.com> Add JEMALLOC_ALLOC_JUNK and JEMALLOC_FREE_JUNK macros

Replace hardcoded 0xa5 and 0x5a junk values with JEMALLOC_ALLOC_JUNK and
JEMALLOC_FREE_JUNK macros, respectively.
/external/jemalloc/test/unit/junk.c
676df88e48ae5ab77b05d78cb511cfa2e57d277f 12-Sep-2015 Jason Evans <jasone@canonware.com> Rename arena_maxclass to large_maxclass.

arena_maxclass is no longer an appropriate name, because arenas also
manage huge allocations.
/external/jemalloc/test/unit/junk.c
38d8f50144d229daf4449112d412613bbaa43502 12-Aug-2015 Jason Evans <jasone@canonware.com> Fix assertion in test.
/external/jemalloc/test/unit/junk.c
5fae7dc1b316d0e93aa20cc3aaf050f509aec705 23-Jul-2015 Jason Evans <jasone@canonware.com> Fix MinGW-related portability issues.

Create and use FMT* macros that are equivalent to the PRI* macros that
inttypes.h defines. This allows uniform use of the Unix-specific format
specifiers, e.g. "%zu", as well as avoiding Windows-specific definitions
of e.g. PRIu64.

Add ffs()/ffsl() support for compiling with gcc.

Extract compatibility definitions of ENOENT, EINVAL, EAGAIN, EPERM,
ENOMEM, and ENORANGE into include/msvc_compat/windows_extra.h and
use the file for tests as well as for core jemalloc code.
/external/jemalloc/test/unit/junk.c
218b15cc299ccb8114e52df3eb0f7a9dc810a4b1 18-Jul-2015 Jason Evans <jasone@canonware.com> Fix more MinGW build warnings.
/external/jemalloc/test/unit/junk.c
2c5cb613dfbdf58f88152321b63e60c58cd23972 08-Dec-2014 Guilherme Goncalves <guilherme.p.gonc@gmail.com> Introduce two new modes of junk filling: "alloc" and "free".

In addition to true/false, opt.junk can now be either "alloc" or "free",
giving applications the possibility of junking memory only on allocation
or deallocation.

This resolves #172.
/external/jemalloc/test/unit/junk.c
f22214a29ddd3bed005cbcc8f2aff7c61ef4940b 06-Oct-2014 Daniel Micay <danielmicay@gmail.com> Use regular arena allocation for huge tree nodes.

This avoids grabbing the base mutex, as a step towards fine-grained
locking for huge allocations. The thread cache also provides a tiny
(~3%) improvement for serial huge allocations.
/external/jemalloc/test/unit/junk.c
155bfa7da18cab0d21d87aa2dce4554166836f5d 06-Oct-2014 Jason Evans <jasone@canonware.com> Normalize size classes.

Normalize size classes to use the same number of size classes per size
doubling (currently hard coded to 4), across the intire range of size
classes. Small size classes already used this spacing, but in order to
support this change, additional small size classes now fill [4 KiB .. 16
KiB). Large size classes range from [16 KiB .. 4 MiB). Huge size
classes now support non-multiples of the chunk size in order to fill (4
MiB .. 16 MiB).
/external/jemalloc/test/unit/junk.c
e2deab7a751c8080c2b2cdcfd7b11887332be1bb 16-May-2014 Jason Evans <je@fb.com> Refactor huge allocation to be managed by arenas.

Refactor huge allocation to be managed by arenas (though the global
red-black tree of huge allocations remains for lookup during
deallocation). This is the logical conclusion of recent changes that 1)
made per arena dss precedence apply to huge allocation, and 2) made it
possible to replace the per arena chunk allocation/deallocation
functions.

Remove the top level huge stats, and replace them with per arena huge
stats.

Normalize function names and types to *dalloc* (some were *dealloc*).

Remove the --enable-mremap option. As jemalloc currently operates, this
is a performace regression for some applications, but planned work to
logarithmically space huge size classes should provide similar amortized
performance. The motivation for this change was that mremap-based huge
reallocation forced leaky abstractions that prevented refactoring.
/external/jemalloc/test/unit/junk.c
ab8c79fdafd6d1ee722c1277ef32c14c6e0c9dd3 30-Mar-2014 Jason Evans <jasone@canonware.com> Fix message formatting errors uncovered by p_test_fail() refactoring.
/external/jemalloc/test/unit/junk.c
940fdfd5eef45f5425f9124e250fddde5c5c48bf 25-Feb-2014 Jason Evans <jasone@canonware.com> Fix junk filling for mremap(2)-based huge reallocation.

If mremap(2) is used for huge reallocation, physical pages are mapped to
new virtual addresses rather than data being copied to new pages. This
bypasses the normal junk filling that would happen during allocation, so
add junk filling that is specific to this case.
/external/jemalloc/test/unit/junk.c
6b694c4d47278cddfaaedeb7ee49fa5757e35ed5 08-Jan-2014 Jason Evans <je@fb.com> Add junk/zero filling unit tests, and fix discovered bugs.

Fix growing large reallocation to junk fill new space.

Fix huge deallocation to junk fill when munmap is disabled.
/external/jemalloc/test/unit/junk.c