- Dec 04, 2016
-
-
Jason Evans authored
This resolves #517.
-
Jason Evans authored
-
Jason Evans authored
This fixes a regression caused by e98a620c (Mark partially purged arena chunks as non-hugepage.).
-
- Nov 29, 2016
-
-
John Szakmeister authored
The core issue here is the weak linking of the symbol, and in certain environments--for instance, using the latest Xcode (8.1) with the latest SDK (10.12)--os_unfair_lock may resolve even though you're compiling on a host that doesn't support it (10.11). We can use the availability macros to circumvent this problem, and detect that we're not compiling for a target that is going to support them and error out at compile time. The other alternative is to do a runtime check, but that presents issues for cross-compiling.
-
- Nov 24, 2016
-
-
Jason Evans authored
Add the pages_[no]huge() functions, which toggle huge page state via madvise(..., MADV_[NO]HUGEPAGE) calls. The first time a page run is purged from within an arena chunk, call pages_nohuge() to tell the kernel to make no further attempts to back the chunk with huge pages. Upon arena chunk deletion, restore the associated virtual memory to its original state via pages_huge(). This resolves #243.
-
- Nov 22, 2016
-
-
Jason Evans authored
This resolves #509.
-
- Nov 18, 2016
-
-
Jason Evans authored
Some versions of Android provide a pthreads library without providing pthread_atfork(), so in practice a separate feature test is necessary for the latter.
-
- Nov 17, 2016
-
-
Jason Evans authored
Add feature tests for the MADV_FREE and MADV_DONTNEED flags to madvise(2), so that MADV_FREE is detected and used for Linux kernel versions 4.5 and newer. Refactor pages_purge() so that on systems which support both flags, MADV_FREE is preferred over MADV_DONTNEED. This resolves #387.
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
-
- Nov 16, 2016
-
-
Jason Evans authored
This resolves #494.
-
Jason Evans authored
This reverts commit 45f83a2a. JE_RUNNABLE() causes general cross-compilation issues.
-
Jason Evans authored
-
Jason Evans authored
This avoids warnings in some cases, and is otherwise generally good hygiene.
-
- Nov 15, 2016
-
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
Rather than relying on two's complement negation for alignment mask generation, use bitwise not and addition. This dodges warnings from MSVC, and should be strength-reduced by compiler optimization anyway.
-
Jason Evans authored
-
Jason Evans authored
-
Jason Evans authored
Add extent serial numbers and use them where appropriate as a sort key that is higher priority than address, so that the allocation policy prefers older extents. This resolves #147.
-
- Nov 12, 2016
-
-
Jason Evans authored
This resolves #494.
-
Jason Evans authored
-
Jason Evans authored
2cdf07ab (Fix extent_quantize() to handle greater-than-huge-size extents.) solved a non-problem; the expression passed in to index2size() was never too large. However the expression could in principle underflow, so fix the actual (latent) bug and remove unnecessary complexity.
-
Jason Evans authored
This fixes a regression caused by 40ee9aa9 (Fix stats.cactive accounting regression.) and first released in 4.1.0.
-
Jason Evans authored
Remove outer CHUNK_CEILING(s2u(...)) from alloc_size computation, since s2u() may overflow (and return 0), and CHUNK_CEILING() is only needed around the alignment portion of the computation. This fixes a regression caused by 5707d6f9 (Quantize szad trees by size class.) and first released in 4.0.0. This resolves #497.
-
Jason Evans authored
Allocation requests can't directly create extents that exceed HUGE_MAXCLASS, but extent merging can create them. This fixes a regression caused by 8a03cf03 (Implement cache index randomization for large allocations.) and first released in 4.0.0. This resolves #497.
-
- Nov 11, 2016
-
-
Jason Evans authored
This is tailored to Android, i.e. more specific than the *-*-linux* configuration. This resolves #471.
-
Samuel Moritz authored
Treat it exactly like Linux since they both use GNU libc.
-
Jason Evans authored
-
- Nov 08, 2016
-
-
Jason Evans authored
-
Jason Evans authored
-
- Nov 07, 2016
-
-
Jason Evans authored
This reverts commit af33e9a5. This resolves #495.
-
Jason Evans authored
This resolves #495.
-
Jason Evans authored
Fix arena_run_first_best_fit() to search all potentially non-empty runs_avail heaps, rather than ignoring the heap that contains runs larger than large_maxclass, but less than chunksize. This fixes a regression caused by f193fd80 (Refactor runs_avail.). This resolves #493.
-
- Nov 05, 2016
-
-
Jason Evans authored
-
Jason Evans authored
-
- Nov 04, 2016
-
-
Jason Evans authored
-
Jason Evans authored
Fix paren placement so that QUANTUM_CEILING() applies to the correct portion of the expression that computes how much memory to base_alloc(). In practice this bug had no impact. This was caused by 5d8db15d (Simplify run quantization.), which in turn fixed an over-allocation regression caused by 3c4d92e8 (Add per size class huge allocation statistics.).
-
Matthew Parkinson authored
-