Bug 1082199 - Recompute stats in jemalloc_stats when using jemalloc3. r=glandium
--- a/memory/build/mozjemalloc_compat.c
+++ b/memory/build/mozjemalloc_compat.c
@@ -63,16 +63,22 @@ malloc_good_size_impl(size_t size)
MOZ_JEMALLOC_API void
jemalloc_stats_impl(jemalloc_stats_t *stats)
{
unsigned narenas;
size_t active, allocated, mapped, page, pdirty;
size_t lg_chunk;
+ // Refresh jemalloc's stats by updating its epoch, see ctl_refresh in
+ // src/ctl.c
+ uint64_t epoch = 0;
+ size_t esz = sizeof(epoch);
+ int ret = je_(mallctl)("epoch", &epoch, &esz, &epoch, esz);
+
CTL_GET("arenas.narenas", narenas);
CTL_GET("arenas.page", page);
CTL_GET("stats.active", active);
CTL_GET("stats.allocated", allocated);
CTL_GET("stats.mapped", mapped);
CTL_GET("opt.lg_chunk", lg_chunk);
/* get the summation for all arenas, i == narenas */