diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in
index 2a8573b8..692658f8 100644
--- a/doc/jemalloc.xml.in
+++ b/doc/jemalloc.xml.in
@@ -897,16 +897,6 @@ mallctl("arena." STRINGIFY(MALLCTL_ARENAS_ALL) ".decay",
during build configuration.
-
-
- config.prof_frameptr
- (bool)
- r-
-
- was specified
- during build configuration.
-
-
config.stats
@@ -1419,6 +1409,17 @@ malloc_conf = "xmalloc:true";]]>
extent hooks.
+
+
+ opt.prof_bt_max
+ (unsigned)
+ r-
+ []
+
+ Maximum number of stack frames to record in profiling
+ backtraces. The default is 128.
+
+
opt.prof
@@ -1666,6 +1667,53 @@ malloc_conf = "xmalloc:true";]]>
testing this behavior.
+
+
+ opt.debug_double_free_max_scan
+ (unsigned)
+ r-
+ []
+
+ Maximum number of cached pointers to scan in the
+ thread cache when checking for double-free errors on deallocation.
+ When debug is enabled, each deallocation into the tcache scans up to
+ this many recently cached pointers to detect whether the same pointer
+ is being freed twice. Setting this to 0 disables the check. This
+ option is set to 0 and has no effect when debug is not enabled. The
+ default is 32.
+
+
+
+
+ opt.disable_large_size_classes
+ (bool)
+ r-
+
+ When enabled (the default), large allocations
+ (i.e. allocations of size >= SC_LARGE_MINCLASS)
+ are rounded up to the nearest page boundary rather than the nearest
+ large size class. This minimizes memory overhead, especially when
+ using hugepages, at the cost of disabling the standard large size
+ class hierarchy.
+
+
+
+
+ opt.process_madvise_max_batch
+ (size_t)
+ r-
+
+ Maximum number of memory regions to include in each
+ process_madvise
+ 2 batch call. When set to 0
+ (the default), process_madvise is not used, and the standard
+ madvise
+ 2 is used instead. Setting this
+ to a positive value enables batched purging via process_madvise, which
+ can reduce the number of system calls needed for
+ purging.
+
+
thread.arena
@@ -1802,6 +1850,47 @@ malloc_conf = "xmalloc:true";]]>
the developer may find manual flushing useful.
+
+
+ thread.tcache.max
+ (size_t)
+ rw
+
+ Get or set the maximum cached size class
+ (tcache_max) for the calling thread's tcache. The
+ value is clamped to the maximum allowed limit and rounded up to the
+ nearest size class boundary. Changing this value will resize the
+ thread cache accordingly.
+
+
+
+
+ thread.tcache.ncached_max.read_sizeclass
+ (size_t)
+ rw
+
+ Query the maximum number of cached objects
+ (ncached_max) for a given size class in the calling
+ thread's tcache. The size class is passed in via
+ newp, and the corresponding
+ ncached_max is returned via
+ oldp.
+
+
+
+
+ thread.tcache.ncached_max.write
+ (char *)
+ -w
+
+ Set the maximum number of cached objects
+ (ncached_max) for size classes in the calling
+ thread's tcache. The input is a string of pipe-separated settings,
+ where each setting specifies a size range and a count, in the same
+ format as the opt.tcache_ncached_max runtime
+ option.
+
+
thread.prof.name
@@ -1985,6 +2074,24 @@ malloc_conf = "xmalloc:true";]]>
linkend="thread.arena">thread.arena.
+
+
+ arena.<i>.name
+ (char *)
+ rw
+
+ Get or set a descriptive name for arena <i>.
+ Arena names can be up to 32 characters long (including the null
+ terminator); longer names are truncated. When reading, the caller
+ passes a pointer to a pre-allocated buffer (of at least 32 bytes) via
+ oldp, and
+ *oldlenp must be
+ sizeof(char *).
+ Arena names are also included in the output of malloc_stats_print().
+
+
+
arena.<i>.dss
@@ -2342,6 +2449,18 @@ struct extent_hooks_s {
Page size.
+
+
+ arenas.hugepage
+ (size_t)
+ r-
+
+ Hugepage size. This value is also reported in the
+ output of malloc_stats_print().
+
+
+
arenas.tcache_max
@@ -2561,6 +2680,24 @@ struct extent_hooks_s {
option for additional information.
+
+
+ approximate_stats.active
+ (size_t)
+ r-
+
+ Return the total number of bytes in active pages
+ collected in an unsynchronized manner, without requiring an
+ epoch update.
+ As a result, this value should NOT be compared with other
+ stats. For example, the relative ordering between
+ approximate_stats.active and stats.active or stats.resident is
+ not guaranteed. This interface is intended for lightweight monitoring
+ where an approximate value is sufficient.
+
+
stats.allocated