diff options
| author | Jason Evans <jasone@canonware.com> | 2016-12-22 16:39:10 -0600 |
|---|---|---|
| committer | Jason Evans <jasone@canonware.com> | 2016-12-26 18:08:28 -0800 |
| commit | a0dd3a4483e2e72ee80e70424a6522f873f2c7ff (patch) | |
| tree | 35653ce115166355fd3989dff22714dc0402bf15 /src/stats.c | |
| parent | a6e86810d83aba0d94d0f6423ed09e8e6e0909fa (diff) | |
| download | platform_external_jemalloc_new-a0dd3a4483e2e72ee80e70424a6522f873f2c7ff.tar.gz platform_external_jemalloc_new-a0dd3a4483e2e72ee80e70424a6522f873f2c7ff.tar.bz2 platform_external_jemalloc_new-a0dd3a4483e2e72ee80e70424a6522f873f2c7ff.zip | |
Implement per arena base allocators.
Add/rename related mallctls:
- Add stats.arenas.<i>.base .
- Rename stats.arenas.<i>.metadata to stats.arenas.<i>.internal .
- Add stats.arenas.<i>.resident .
Modify the arenas.extend mallctl to take an optional (extent_hooks_t *)
argument so that it is possible for all base allocations to be serviced
by the specified extent hooks.
This resolves #463.
Diffstat (limited to 'src/stats.c')
| -rw-r--r-- | src/stats.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/src/stats.c b/src/stats.c index e150a27f..0a3deaaa 100644 --- a/src/stats.c +++ b/src/stats.c @@ -254,7 +254,8 @@ stats_arena_print(void (*write_cb)(void *, const char *), void *cbopaque, unsigned nthreads; const char *dss; ssize_t decay_time; - size_t page, pactive, pdirty, mapped, retained, metadata; + size_t page, pactive, pdirty, mapped, retained; + size_t base, internal, resident; uint64_t npurge, nmadvise, purged; size_t small_allocated; uint64_t small_nmalloc, small_ndalloc, small_nrequests; @@ -404,14 +405,32 @@ stats_arena_print(void (*write_cb)(void *, const char *), void *cbopaque, "retained: %12zu\n", retained); } - CTL_M2_GET("stats.arenas.0.metadata", i, &metadata, size_t); + CTL_M2_GET("stats.arenas.0.base", i, &base, size_t); if (json) { malloc_cprintf(write_cb, cbopaque, - "\t\t\t\t\"metadata\": %zu%s\n", metadata, (bins || large) ? + "\t\t\t\t\"base\": %zu,\n", base); + } else { + malloc_cprintf(write_cb, cbopaque, + "base: %12zu\n", base); + } + + CTL_M2_GET("stats.arenas.0.internal", i, &internal, size_t); + if (json) { + malloc_cprintf(write_cb, cbopaque, + "\t\t\t\t\"internal\": %zu,\n", internal); + } else { + malloc_cprintf(write_cb, cbopaque, + "internal: %12zu\n", internal); + } + + CTL_M2_GET("stats.arenas.0.resident", i, &resident, size_t); + if (json) { + malloc_cprintf(write_cb, cbopaque, + "\t\t\t\t\"resident\": %zu%s\n", resident, (bins || large) ? "," : ""); } else { malloc_cprintf(write_cb, cbopaque, - "metadata: %12zu\n", metadata); + "resident: %12zu\n", resident); } if (bins) |
