- Dec 04, 2016
-
-
Jason Evans authored
This resolves #517.
-
- Nov 30, 2016
-
-
Jason Evans authored
-
- Nov 23, 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 22, 2016
-
-
Jason Evans authored
This resolves #509.
-
Jason Evans authored
-
- 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
-
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
-
- Nov 16, 2016
-
-
Maks Naumov authored
-
Jason Evans authored
This resolves #494.
-
Jason Evans authored
This reverts commit a2e601a2. JE_RUNNABLE() causes general cross-compilation issues.
-
Jason Evans authored
This avoids warnings in some cases, and is otherwise generally good hygiene.
-
- Nov 15, 2016
-
-
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.
-
Jason Evans authored
This regression was caused by 498856f4 (Move slabs out of chunks.).
-
- Nov 12, 2016
-
-
Jason Evans authored
This resolves #494.
-
Jason Evans authored
-
- Nov 11, 2016
-
-
Jason Evans authored
This is tailored to Android, i.e. more specific than the *-*-linux* configuration. This resolves #471.
-
Jason Evans authored
-
- Nov 08, 2016
-
-
Jason Evans authored
-
- Nov 07, 2016
-
-
Jason Evans authored
-
Jason Evans authored
This change conforms to naming conventions throughout the codebase.
-
Jason Evans authored
This reverts commit c2942e2c. This resolves #495.
-
Jason Evans authored
This resolves #495.
-
- Nov 04, 2016
-
-
Jason Evans authored
-
Matthew Parkinson authored
-
Jason Evans authored
This supersedes -std=gnu99, and enables C11 atomics.
-
Jason Evans authored
-
Jason Evans authored
Do not call s2u() during alloc_size computation, since any necessary ceiling increase is taken care of later by extent_first_best_fit() --> extent_size_quantize_ceil(), and the s2u() call may erroneously cause a higher quantization result. Remove an overly strict overflow check that was added in 4a785213 (Fix extent_recycle()'s cache-oblivious padding support.).
-
Jason Evans authored
Add padding *after* computing the size class, so that the optimal size class isn't skipped during search for a usable extent. This regression was caused by b46261d5 (Implement cache-oblivious support for huge size classes.).
-
Jason Evans authored
Add an "over-size" extent heap in which to store extents which exceed the maximum size class (plus cache-oblivious padding, if enabled). Remove psz2ind_clamp() and use psz2ind() instead so that trying to allocate the maximum size class can in principle succeed. In practice, this allows assertions to hold so that OOM errors can be successfully generated.
-
Jason Evans authored
Fix extent_alloc_cache[_locked]() to support decommitted allocation, and use this ability in arena_stash_dirty(), so that decommitted extents are not needlessly committed during purging. In practice this does not happen on any currently supported systems, because both extent merging and decommit must be implemented; all supported systems implement one xor the other.
-
- Nov 03, 2016
-
-
Jason Evans authored
-
Jason Evans authored
-
Samuel Moritz authored
Treat it exactly like Linux since they both use GNU libc.
-
Dave Watson authored
rtree_node_init spinlocks the node, allocates, and then sets the node. This is under heavy contention at the top of the tree if many threads start to allocate at the same time. Instead, take a per-rtree sleeping mutex to reduce spinning. Tested both pthreads and osx OSSpinLock, and both reduce spinning adequately Previous benchmark time: ./ttest1 500 100 ~15s New benchmark time: ./ttest1 500 100 .57s
-
Dave Watson authored
This resolves #485.
-
Jason Evans authored
-