- Jun 08, 2016
-
-
Jason Evans authored
-
Jason Evans authored
rallocx() for an alignment-constrained request may end up with a smaller-than-worst-case size if in-place reallocation succeeds due to serendipitous alignment. In such cases, sampling may not happen.
-
Jason Evans authored
In the case where prof_alloc_prep() is called with an over-estimate of allocation size, and sampling doesn't end up being triggered, the tctx must be discarded.
-
Jason Evans authored
Fix huge_ralloc_no_move_expand() to update the extent's zeroed attribute based on the intersection of the previous value and that of the newly merged trailing extent.
-
- Jun 07, 2016
-
-
Elliot Ronaghan authored
This regression was caused by d412624b (Move retaining out of default chunk hooks).
-
Elliot Ronaghan authored
This regression was caused by 3ef51d7f (Optimize the fast paths of calloc() and [m,d,sd]allocx().).
-
Jason Evans authored
Revert 245ae603 (Support --with-lg-page values larger than actual page size.), because it could cause VM map fragmentation if the kernel grows mmap()ed memory downward. This resolves #391.
-
Elliot Ronaghan authored
Fix mixed decl in the gettimeofday() branch of nstime_update()
-
Jason Evans authored
This avoids bootstrapping issues for configurations that require allocation during tsd initialization. This resolves #390.
-
- May 12, 2016
-
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
Short-circuit commonly called witness functions so that they only execute in debug builds, and remove equivalent guards from mutex functions. This avoids pointless code execution in witness_assert_lockless(), which is typically called twice per allocation/deallocation function invocation. Inline commonly called witness functions so that optimized builds can completely remove calls as dead code.
-
- May 11, 2016
-
-
Jason Evans authored
Fix in place huge reallocation to update the chunk counters that are used for triggering gdump profiles.
-
Jason Evans authored
-
Jason Evans authored
b2c0d632 (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.
-
- May 08, 2016
-
-
Jason Evans authored
-
- May 07, 2016
-
-
Jason Evans authored
-
Jason Evans authored
-
- May 06, 2016
-
-
Jason Evans authored
-
Jason Evans authored
This is a broader application of optimizations to malloc() and free() in f4a0f32d (Fast-path improvement: reduce # of branches and unnecessary operations.). This resolves #321.
-
Jason Evans authored
If the OS overcommits: - Commit all mappings in pages_map() regardless of whether the caller requested committed memory. - Linux-specific: Specify MAP_NORESERVE to avoid unfortunate interactions with heuristic overcommit mode during fork(2). This resolves #193.
-
- May 04, 2016
-
-
Jason Evans authored
This makes the numbers reported in the leak report summary closely match those reported by jeprof. This resolves #356.
-
Jason Evans authored
This resolves #367.
-
Jason Evans authored
Link libjemalloc against librt if clock_gettime(2) is in librt rather than libc, as for versions of glibc prior to 2.17. This resolves #349.
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
Depending on virtual memory resource limits, it is necessary to attempt allocating three maximally sized objects to trigger OOM rather than just two, since the maximum supported size is slightly less than half the total virtual memory address space. This fixes a test failure that was introduced by 0c516a00 (Make *allocx() size class overflow behavior defined.). This resolves #379.
-
Jason Evans authored
-
Jason Evans authored
Split arena_choose() into arena_[i]choose() and use arena_ichoose() for arena lookup during internal allocation. This fixes huge_palloc() so that it always succeeds during extent node allocation. This regression was introduced by 66cd9535 (Do not allocate metadata via non-auto arenas, nor tcaches.).
-
Jason Evans authored
-
Jason Evans authored
-
- May 03, 2016
-
-
Jason Evans authored
-
Jason Evans authored
This assures that side effects of internal allocation don't impact tests.
-
hitstergtd authored
-
Jason Evans authored
This regression was caused by 8f683b94 (Make opt_narenas unsigned rather than size_t.).
-
Jason Evans authored
Fix bitmap_sfu() to shift by LG_BITMAP_GROUP_NBITS rather than hard-coded 6 when using linear (non-USE_TREE) bitmap search. In practice this affects only 64-bit systems for which sizeof(long) is not 8 (i.e. Windows), since USE_TREE is defined for 32-bit systems. This regression was caused by b8823ab0 (Use linear scan for small bitmaps). This resolves #368.
-