diff options
author | Jason Evans <jasone@FreeBSD.org> | 2014-03-31 17:04:04 +0000 |
---|---|---|
committer | Jason Evans <jasone@FreeBSD.org> | 2014-03-31 17:04:04 +0000 |
commit | 2fff27f84c439ebfbcbab0e3987ee28f0e1f7e60 (patch) | |
tree | e426661c22bd12ce26e2912c7d5c5fd8982659e6 /contrib/jemalloc/src/huge.c | |
parent | 1285b2d147e92df2323a0cc5bfa6abb6e555cd7b (diff) | |
download | src-2fff27f84c439ebfbcbab0e3987ee28f0e1f7e60.tar.gz src-2fff27f84c439ebfbcbab0e3987ee28f0e1f7e60.zip |
Update jemalloc to version 3.6.0.
Notes
Notes:
svn path=/head/; revision=263974
Diffstat (limited to 'contrib/jemalloc/src/huge.c')
-rw-r--r-- | contrib/jemalloc/src/huge.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/contrib/jemalloc/src/huge.c b/contrib/jemalloc/src/huge.c index 6d86aed881b6..d72f21357021 100644 --- a/contrib/jemalloc/src/huge.c +++ b/contrib/jemalloc/src/huge.c @@ -16,14 +16,14 @@ malloc_mutex_t huge_mtx; static extent_tree_t huge; void * -huge_malloc(size_t size, bool zero) +huge_malloc(size_t size, bool zero, dss_prec_t dss_prec) { - return (huge_palloc(size, chunksize, zero)); + return (huge_palloc(size, chunksize, zero, dss_prec)); } void * -huge_palloc(size_t size, size_t alignment, bool zero) +huge_palloc(size_t size, size_t alignment, bool zero, dss_prec_t dss_prec) { void *ret; size_t csize; @@ -48,8 +48,7 @@ huge_palloc(size_t size, size_t alignment, bool zero) * it is possible to make correct junk/zero fill decisions below. */ is_zeroed = zero; - ret = chunk_alloc(csize, alignment, false, &is_zeroed, - chunk_dss_prec_get()); + ret = chunk_alloc(csize, alignment, false, &is_zeroed, dss_prec); if (ret == NULL) { base_node_dealloc(node); return (NULL); @@ -98,7 +97,7 @@ huge_ralloc_no_move(void *ptr, size_t oldsize, size_t size, size_t extra) void * huge_ralloc(void *ptr, size_t oldsize, size_t size, size_t extra, - size_t alignment, bool zero, bool try_tcache_dalloc) + size_t alignment, bool zero, bool try_tcache_dalloc, dss_prec_t dss_prec) { void *ret; size_t copysize; @@ -113,18 +112,18 @@ huge_ralloc(void *ptr, size_t oldsize, size_t size, size_t extra, * space and copying. */ if (alignment > chunksize) - ret = huge_palloc(size + extra, alignment, zero); + ret = huge_palloc(size + extra, alignment, zero, dss_prec); else - ret = huge_malloc(size + extra, zero); + ret = huge_malloc(size + extra, zero, dss_prec); if (ret == NULL) { if (extra == 0) return (NULL); /* Try again, this time without extra. */ if (alignment > chunksize) - ret = huge_palloc(size, alignment, zero); + ret = huge_palloc(size, alignment, zero, dss_prec); else - ret = huge_malloc(size, zero); + ret = huge_malloc(size, zero, dss_prec); if (ret == NULL) return (NULL); @@ -264,6 +263,13 @@ huge_salloc(const void *ptr) return (ret); } +dss_prec_t +huge_dss_prec_get(arena_t *arena) +{ + + return (arena_dss_prec_get(choose_arena(arena))); +} + prof_ctx_t * huge_prof_ctx_get(const void *ptr) { |