diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in
index 265da86f..91127a03 100644
--- a/doc/jemalloc.xml.in
+++ b/doc/jemalloc.xml.in
@@ -2153,6 +2153,80 @@ struct extent_hooks_s {
+
+
+ stats.mutexes.ctl.{counter};
+ (counter specific type)
+ r-
+ []
+
+ Statistics on ctl mutex (global
+ scope; mallctl related). {counter} is one of the
+ counters below:
+
+ num_ops (uint64_t):
+ Total number of lock acquisition operations on this mutex.
+
+ num_spin_acq (uint64_t): Number
+ of times the mutex was spin-acquired. When the mutex is currently
+ locked and cannot be acquired immediately, a short period of
+ spin-retry within jemalloc will be performed. Acquired through spin
+ generally means the contention was lightweight and not causing context
+ switches.
+
+ num_wait (uint64_t): Number of
+ times the mutex was wait-acquired, which means the mutex contention
+ was not solved by spin-retry, and blocking operation was likely
+ involved in order to acquire the mutex. This event generally implies
+ higher cost / longer delay, and should be investigated if it happens
+ often.
+
+ max_wait_time (uint64_t):
+ Maximum length of time in nanoseconds spent on a single wait-acquired
+ lock operation. Note that to avoid profiling overhead on the common
+ path, this does not consider spin-acquired cases.
+
+ total_wait_time (uint64_t):
+ Cumulative time in nanoseconds spent on wait-acquired lock operations.
+ Similarly, spin-acquired cases are not considered.
+
+ max_num_thds (uint32_t): Maximum
+ number of threads waiting on this mutex simultaneously. Similarly,
+ spin-acquired cases are not considered.
+
+ num_owner_switch (uint64_t):
+ Number of times the current mutex owner is different from the previous
+ one. This event does not generally imply an issue; rather it is an
+ indicator of how often the protected data are accessed by different
+ threads.
+
+
+
+
+
+
+
+
+ stats.mutexes.prof.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on prof mutex (global
+ scope; profiling related). {counter} is one of the
+ counters in mutex profiling
+ counters.
+
+
+
+
+ stats.mutexes.reset
+ (void) --
+ []
+
+ Reset all mutex profile statistics, including global
+ mutexes, arena mutexes and bin mutexes.
+
+
stats.arenas.<i>.dss
@@ -2547,6 +2621,19 @@ struct extent_hooks_s {
Current number of slabs.
+
+
+ stats.arenas.<i>.bins.<j>.mutex.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on
+ arena.<i>.bins.<j> mutex (arena bin
+ scope; bin operation related). {counter} is one of
+ the counters in mutex profiling
+ counters.
+
+
stats.arenas.<i>.lextents.<j>.nmalloc
@@ -2590,6 +2677,125 @@ struct extent_hooks_s {
Current number of large allocations for this size class.
+
+
+
+ stats.arenas.<i>.mutexes.large.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on arena.<i>.large
+ mutex (arena scope; large allocation related).
+ {counter} is one of the counters in mutex profiling
+ counters.
+
+
+
+
+ stats.arenas.<i>.mutexes.extent_freelist.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on arena.<i>.extent_freelist
+ mutex (arena scope; extent freelist related).
+ {counter} is one of the counters in mutex profiling
+ counters.
+
+
+
+
+ stats.arenas.<i>.mutexes.extents_dirty.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on arena.<i>.extents_dirty
+ mutex (arena scope; dirty extents related).
+ {counter} is one of the counters in mutex profiling
+ counters.
+
+
+
+
+ stats.arenas.<i>.mutexes.extents_muzzy.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on arena.<i>.extents_muzzy
+ mutex (arena scope; muzzy extents related).
+ {counter} is one of the counters in mutex profiling
+ counters.
+
+
+
+
+ stats.arenas.<i>.mutexes.extents_retained.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on arena.<i>.extents_retained
+ mutex (arena scope; retained extents related).
+ {counter} is one of the counters in mutex profiling
+ counters.
+
+
+
+
+ stats.arenas.<i>.mutexes.decay_dirty.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on arena.<i>.decay_dirty
+ mutex (arena scope; decay for dirty pages related).
+ {counter} is one of the counters in mutex profiling
+ counters.
+
+
+
+
+ stats.arenas.<i>.mutexes.decay_muzzy.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on arena.<i>.decay_muzzy
+ mutex (arena scope; decay for muzzy pages related).
+ {counter} is one of the counters in mutex profiling
+ counters.
+
+
+
+
+ stats.arenas.<i>.mutexes.base.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on arena.<i>.base
+ mutex (arena scope; base allocator related).
+ {counter} is one of the counters in mutex profiling
+ counters.
+
+
+
+
+ stats.arenas.<i>.mutexes.tcache_list.{counter}
+ (counter specific type) r-
+ []
+
+ Statistics on
+ arena.<i>.tcache_list mutex (arena scope;
+ tcache to arena association related). This mutex is expected to be
+ accessed less often. {counter} is one of the
+ counters in mutex profiling
+ counters.
+
+