- Jan 23, 2015
-
-
Jason Evans authored
-
Jason Evans authored
This resolves #100.
-
- Jan 22, 2015
-
-
Jason Evans authored
Refactor bootstrapping to delay tsd initialization, primarily to support integration with FreeBSD's libc. Refactor a0*() for internal-only use, and add the bootstrap_{malloc,calloc,free}() API for use by FreeBSD's libc. This separation limits use of the a0*() functions to metadata allocation, which doesn't require malloc/calloc/free API compatibility. This resolves #170.
-
Jason Evans authored
Fix arenas_cache_cleanup() to check whether arenas_cache is NULL before deallocation, rather than checking arenas.
-
- Jan 21, 2015
-
-
Abhishek Kulkarni authored
This resolves #185.
-
- Jan 17, 2015
-
-
Jason Evans authored
Fix memalign() and valloc() to heed imemalign()'s return value. Reported by Kurt Wampler.
-
- Jan 15, 2015
-
-
Jason Evans authored
This resolves #184.
-
- Jan 09, 2015
-
-
Guilherme Goncalves authored
-
- Dec 18, 2014
-
-
Mike Hommey authored
It often happens that code changes introduce mixed declarations, that then break building with Visual Studio. Since the code style is to not use mixed declarations anyways, we might as well enforce it with -Werror.
-
- Dec 17, 2014
-
-
Guilherme Goncalves authored
-
- Dec 15, 2014
-
-
Bert Maher authored
Currently pprof will print output for all threads if a single thread is not specified, but this doesn't play well with many output formats (e.g., any of the dot-based formats). Instead, default to printing just the overall profile when no specific thread is requested. This resolves #157.
-
Guilherme Goncalves authored
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.
-
Daniel Micay authored
This eliminates the malloc tunables as tools for an attacker. Closes #173
-
- Dec 09, 2014
-
-
Jason Evans authored
-
- Dec 07, 2014
-
-
Chih-hung Hsieh authored
-
- Dec 06, 2014
-
-
Jason Evans authored
-
- Dec 05, 2014
-
-
Jason Evans authored
Fix OOM cleanup in huge_palloc() to call idalloct() rather than base_node_dalloc(). This bug is a result of incomplete refactoring, and has no impact other than leaking memory during OOM.
-
- Dec 03, 2014
-
-
Yuriy Kaminskiy authored
-
- Nov 29, 2014
-
-
Daniel Micay authored
This provides in-place expansion of huge allocations when the end of the allocation is at the end of the sbrk heap. There's already the ability to extend in-place via recycled chunks but this handles the initial growth of the heap via repeated vector / string reallocations. A possible future extension could allow realloc to go from the following: | huge allocation | recycled chunks | ^ dss_end To a larger allocation built from recycled *and* new chunks: | huge allocation | ^ dss_end Doing that would involve teaching the chunk recycling code to request new chunks to satisfy the request. The chunk_dss code wouldn't require any further changes. #include <stdlib.h> int main(void) { size_t chunk = 4 * 1024 * 1024; void *ptr = NULL; for (size_t size = chunk; size < chunk * 128; size *= 2) { ptr = realloc(ptr, size); if (!ptr) return 1; } } dss:secondary: 0.083s dss:primary: 0.083s After: dss:secondary: 0.083s dss:primary: 0.003s The dss heap grows in the upwards direction, so the oldest chunks are at the low addresses and they are used first. Linux prefers to grow the mmap heap downwards, so the trick will not work in the *current* mmap chunk allocator as a huge allocation will only be at the top of the heap in a contrived case.
-
- Nov 18, 2014
-
-
Guilherme Goncalves authored
-
- Nov 17, 2014
-
-
Jason Evans authored
Reported by Guilherme Gonçalves. This resolves #166.
-
Jason Evans authored
Reported by Denis Denisov.
-
- Nov 07, 2014
-
-
Jason Evans authored
-
- Nov 05, 2014
-
-
Jason Evans authored
Fix quarantine to actually update tsd when expanding, and to avoid double initialization (leaking the first quarantine) due to recursive initialization. This resolves #161.
-
- Nov 01, 2014
-
-
Jason Evans authored
-
Jason Evans authored
It is possible for the thread's tdata to be NULL late during thread destruction, so take care not to dereference a NULL pointer in such cases.
-
Jason Evans authored
Unlike the preceeding attempted fix, this version avoids the potential for converting an invalid bin index to a size class.
-
Jason Evans authored
-
- Oct 31, 2014
-
-
Daniel Micay authored
It has no use for the arena_t since unlike rallocx it never makes a new memory allocation. It's just an unused parameter in ixalloc_helper.
-
Jason Evans authored
-
Daniel Micay authored
* use sized deallocation in iralloct_realign * iralloc and ixalloc always need the old size, so pass it in from the caller where it's often already calculated
-
Daniel Micay authored
This cleans up the fast path a bit more by moving away more code.
-
Jason Evans authored
-
Jason Evans authored
-
- Oct 21, 2014
-
-
Jason Evans authored
Fix variable declaration with no type in the configure script.
-
- Oct 20, 2014
-
-
Guilherme Goncalves authored
-
- Oct 16, 2014
-
-
Jason Evans authored
use sized deallocation internally for ralloc
-
Daniel Micay authored
The size of the source allocation is known at this point, so reading the chunk header can be avoided for the small size class fast path. This is not very useful right now, but it provides a significant performance boost with an alternate ralloc entry point taking the old size.
-
Jason Evans authored
This resolves #150.
-
Jason Evans authored
Purge trailing pages during shrinking huge reallocation when resulting size is not a multiple of the chunk size. Similarly, zero pages if necessary during growing huge reallocation when the resulting size is not a multiple of the chunk size.
-