diff options
| author | Jason Evans <jasone@canonware.com> | 2017-01-07 02:56:02 (GMT) |
|---|---|---|
| committer | Jason Evans <jasone@canonware.com> | 2017-01-07 02:58:45 (GMT) |
| commit | 363629df88fc9d32cd4efbcc3c1a3eef1bbfe525 (patch) | |
| tree | add980af4d9c09fa2b262a11244dffbfc9cfb081 /src | |
| parent | 5c5ff8d121e1f8389d18dfe22912739b99e893a8 (diff) | |
| download | jemalloc-363629df88fc9d32cd4efbcc3c1a3eef1bbfe525.zip jemalloc-363629df88fc9d32cd4efbcc3c1a3eef1bbfe525.tar.gz jemalloc-363629df88fc9d32cd4efbcc3c1a3eef1bbfe525.tar.bz2 | |
Fix allocated_large stats with respect to sampled small allocations.
Diffstat (limited to 'src')
| -rw-r--r-- | src/arena.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/arena.c b/src/arena.c index 2c3cc5c..ec8d479 100644 --- a/src/arena.c +++ b/src/arena.c @@ -211,11 +211,15 @@ arena_nactive_sub(arena_t *arena, size_t sub_pages) static void arena_large_malloc_stats_update(arena_t *arena, size_t usize) { - szind_t index = size2index(usize); - szind_t hindex = (index >= NBINS) ? index - NBINS : 0; + szind_t index, hindex; cassert(config_stats); + if (usize < LARGE_MINCLASS) + usize = LARGE_MINCLASS; + index = size2index(usize); + hindex = (index >= NBINS) ? index - NBINS : 0; + arena->stats.nmalloc_large++; arena->stats.allocated_large += usize; arena->stats.lstats[hindex].nmalloc++; @@ -226,11 +230,15 @@ arena_large_malloc_stats_update(arena_t *arena, size_t usize) static void arena_large_malloc_stats_update_undo(arena_t *arena, size_t usize) { - szind_t index = size2index(usize); - szind_t hindex = (index >= NBINS) ? index - NBINS : 0; + szind_t index, hindex; cassert(config_stats); + if (usize < LARGE_MINCLASS) + usize = LARGE_MINCLASS; + index = size2index(usize); + hindex = (index >= NBINS) ? index - NBINS : 0; + arena->stats.nmalloc_large--; arena->stats.allocated_large -= usize; arena->stats.lstats[hindex].nmalloc--; @@ -241,11 +249,15 @@ arena_large_malloc_stats_update_undo(arena_t *arena, size_t usize) static void arena_large_dalloc_stats_update(arena_t *arena, size_t usize) { - szind_t index = size2index(usize); - szind_t hindex = (index >= NBINS) ? index - NBINS : 0; + szind_t index, hindex; cassert(config_stats); + if (usize < LARGE_MINCLASS) + usize = LARGE_MINCLASS; + index = size2index(usize); + hindex = (index >= NBINS) ? index - NBINS : 0; + arena->stats.ndalloc_large++; arena->stats.allocated_large -= usize; arena->stats.lstats[hindex].ndalloc++; |
