- Aug 12, 2015
-
-
Jason Evans authored
-
Jason Evans authored
This is no longer necessary because of the more general chunk merge/split approach to dealing with map coalescing.
-
Jason Evans authored
Always leave decommit disabled on non-Windows systems.
-
Jason Evans authored
Fix arena_run_split_large_helper() to treat newly committed memory as zeroed.
-
- Aug 11, 2015
-
-
Jason Evans authored
This regression was introduced by de249c86 (Arena chunk decommit cleanups and fixes.). This resolves #254.
-
Mike Hommey authored
-
Jason Evans authored
Only set the unzeroed flag when initializing the entire mapbits entry, rather than mutating just the unzeroed bit. This simplifies the possible mapbits state transitions.
-
Jason Evans authored
Decommit arena chunk header during chunk deallocation if the rest of the chunk is decommitted.
-
- Aug 07, 2015
-
-
Jason Evans authored
-
Jason Evans authored
Cascade from decommit to purge when purging unused dirty pages, so that it is possible to decommit cleaned memory rather than just purging. For non-Windows debug builds, decommit runs rather than purging them, since this causes access of deallocated runs to segfault. This resolves #251.
-
Jason Evans authored
Fix arena_ralloc_large_grow() to properly account for large_pad, so that in-place large reallocation succeeds when possible, rather than always failing. This regression was introduced by 8a03cf03 (Implement cache index randomization for large allocations.)
-
- Aug 04, 2015
-
-
Daniel Micay authored
In builds with profiling disabled (default), the opt_prof_prefix array has a one byte length as a micro-optimization. This will cause the usage of write in the unused profiling code to be statically detected as a buffer overflow by Bionic's _FORTIFY_SOURCE implementation as it tries to detect read overflows in addition to write overflows. This works around the problem by informing the compiler that not_reached() means code in unreachable in release builds.
-
Matthijs authored
- Decorate public function with __declspec(allocator) and __declspec(restrict), just like MSVC 1900 - Support JEMALLOC_HAS_RESTRICT by defining the restrict keyword - Move __declspec(nothrow) between 'void' and '*' so it compiles once more
-
Jason Evans authored
Add the "arena.<i>.chunk_hooks" mallctl, which replaces and expands on the "arena.<i>.chunk.{alloc,dalloc,purge}" mallctls. The chunk hooks allow control over chunk allocation/deallocation, decommit/commit, purging, and splitting/merging, such that the application can rely on jemalloc's internal chunk caching and retaining functionality, yet implement a variety of chunk management mechanisms and policies. Merge the chunks_[sz]ad_{mmap,dss} red-black trees into chunks_[sz]ad_retained. This slightly reduces how hard jemalloc tries to honor the dss precedence setting; prior to this change the precedence setting was also consulted when recycling chunks. Fix chunk purging. Don't purge chunks in arena_purge_stashed(); instead deallocate them in arena_unstash_purged(), so that the dirty memory linkage remains valid until after the last time it is used. This resolves #176 and #201.
-
- Jul 25, 2015
-
-
Jason Evans authored
- Do not reallocate huge objects in place if the number of backing chunks would change. - Do not cache multi-chunk mappings. This resolves #213.
-
Jason Evans authored
Fix huge_ralloc_no_move() to succeed if an allocation request results in the same usable size as the existing allocation, even if the request size is smaller than the usable size. This bug did not cause correctness issues, but it could cause unnecessary moves during reallocation.
-
- Jul 24, 2015
-
-
Jason Evans authored
huge_ralloc() passes a size that may not be precisely a size class, so make huge_palloc() handle the more general case of a size input rather than usize. This regression appears to have been introduced by the addition of in-place huge reallocation; as such it was never incorporated into a release.
-
Jason Evans authored
Take large_pad into account when determining whether an aligned allocation can be satisfied by a large size class. This regression was introduced by 8a03cf03 (Implement cache index randomization for large allocations.).
-
Jason Evans authored
This change merely documents that arena_palloc_large() always receives usize as its argument.
-
Jason Evans authored
Macro expansion happens too late for the #undef directives to work as a mechanism for preventing accidental direct use of the PRI* macros.
-
- Jul 23, 2015
-
-
Jason Evans authored
This resolves #83.
-
Jason Evans authored
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.
-
Jason Evans authored
This regression was introduced by 1b0e4abb (Port mq_get() to MinGW.).
-
Jason Evans authored
Replace JEMALLOC_ATTR(format(printf, ...). with JEMALLOC_FORMAT_PRINTF(), so that configuration feature tests can omit the attribute if it would cause extraneous compilation warnings.
-
- Jul 22, 2015
-
-
Jason Evans authored
-
- Jul 21, 2015
-
-
Jason Evans authored
Only use __declspec(nothrow) in C++ mode. This resolves #244.
-
Mike Hommey authored
As per gcc documentation: The alloc_size attribute is used to tell the compiler that the function return value points to memory (...) This resolves #245.
-
- Jul 18, 2015
-
-
Jason Evans authored
-
Jason Evans authored
-
- Jul 16, 2015
-
-
Dave Rigby authored
Fixes warning with newer GCCs: include/jemalloc/jemalloc.h:229:2: warning: extra ';' [-Wpedantic] }; ^
-
Jason Evans authored
This change improves interaction with transparent huge pages, e.g. reduced page faults (at least in the absence of unused dirty page purging).
-
Jason Evans authored
This effectively reverts 97c04a93 (Use first-fit rather than first-best-fit run/chunk allocation.). In some pathological cases, first-fit search dominates allocation time, and it also tends not to converge as readily on a steady state of memory layout, since precise allocation order has a bigger effect than for first-best-fit.
-
- Jul 13, 2015
-
-
Jason Evans authored
-
- Jul 11, 2015
-
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
Add various function attributes to the exported functions to give the compiler more information to work with during optimization, and also specify throw() when compiling with C++ on Linux, in order to adequately match what __THROW does in glibc. This resolves #237.
-
- Jul 10, 2015
-
-
Jason Evans authored
This {bug,regression} was introduced by 155bfa7d (Normalize size classes.). This resolves #241.
-
Jason Evans authored
-
- Jul 09, 2015
-
-
Jason Evans authored
-
- Jul 08, 2015
-
-
Jason Evans authored
-