diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in
index 7fecda7cb0..5636fb9003 100644
--- a/doc/jemalloc.xml.in
+++ b/doc/jemalloc.xml.in
@@ -2509,6 +2509,30 @@ struct extent_hooks_s {
counters.
+
+
+ stats.mutexes.prof_thds_data.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on prof threads data mutex
+ (global scope; profiling related). {counter} is one
+ of the counters in mutex profiling
+ counters.
+
+
+
+
+ stats.mutexes.prof_dump.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on prof dumping mutex
+ (global scope; profiling related). {counter} is one
+ of the counters in mutex profiling
+ counters.
+
+
stats.mutexes.reset
diff --git a/include/jemalloc/internal/mutex_prof.h b/include/jemalloc/internal/mutex_prof.h
index 2cb8fb0cbf..6288ede57c 100644
--- a/include/jemalloc/internal/mutex_prof.h
+++ b/include/jemalloc/internal/mutex_prof.h
@@ -8,7 +8,9 @@
#define MUTEX_PROF_GLOBAL_MUTEXES \
OP(background_thread) \
OP(ctl) \
- OP(prof)
+ OP(prof) \
+ OP(prof_thds_data) \
+ OP(prof_dump)
typedef enum {
#define OP(mtx) global_prof_mutex_##mtx,
diff --git a/src/ctl.c b/src/ctl.c
index 48afaa61f4..a89a709662 100644
--- a/src/ctl.c
+++ b/src/ctl.c
@@ -1093,8 +1093,12 @@ ctl_refresh(tsdn_t *tsdn) {
malloc_mutex_unlock(tsdn, &mtx);
if (config_prof && opt_prof) {
- READ_GLOBAL_MUTEX_PROF_DATA(global_prof_mutex_prof,
- bt2gctx_mtx);
+ READ_GLOBAL_MUTEX_PROF_DATA(
+ global_prof_mutex_prof, bt2gctx_mtx);
+ READ_GLOBAL_MUTEX_PROF_DATA(
+ global_prof_mutex_prof_thds_data, tdatas_mtx);
+ READ_GLOBAL_MUTEX_PROF_DATA(
+ global_prof_mutex_prof_dump, prof_dump_mtx);
}
if (have_background_thread) {
READ_GLOBAL_MUTEX_PROF_DATA(
@@ -2972,6 +2976,8 @@ stats_mutexes_reset_ctl(tsd_t *tsd, const size_t *mib,
}
if (config_prof && opt_prof) {
MUTEX_PROF_RESET(bt2gctx_mtx);
+ MUTEX_PROF_RESET(tdatas_mtx);
+ MUTEX_PROF_RESET(prof_dump_mtx);
}