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
|