aboutsummaryrefslogtreecommitdiffstats
path: root/src/stats.c
diff options
context:
space:
mode:
authorJason Evans <jasone@canonware.com>2016-12-22 16:39:10 -0600
committerJason Evans <jasone@canonware.com>2016-12-26 18:08:28 -0800
commita0dd3a4483e2e72ee80e70424a6522f873f2c7ff (patch)
tree35653ce115166355fd3989dff22714dc0402bf15 /src/stats.c
parenta6e86810d83aba0d94d0f6423ed09e8e6e0909fa (diff)
downloadplatform_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.c27
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)