diff options
Diffstat (limited to 'doc/jemalloc.xml.in')
| -rw-r--r-- | doc/jemalloc.xml.in | 84 |
1 files changed, 73 insertions, 11 deletions
diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in index 1e12fd3..fd0edb3 100644 --- a/doc/jemalloc.xml.in +++ b/doc/jemalloc.xml.in @@ -433,10 +433,11 @@ for (i = 0; i < nbins; i++) { arena statistics, respectively; <quote>b</quote> and <quote>l</quote> can be specified to omit per size class statistics for bins and large objects, respectively; <quote>x</quote> can be specified to omit all mutex - statistics. Unrecognized characters are silently ignored. Note that - thread caching may prevent some statistics from being completely up to - date, since extra locking would be required to merge counters that track - thread cache operations.</para> + statistics; <quote>e</quote> can be used to omit extent statistics. + Unrecognized characters are silently ignored. Note that thread caching + may prevent some statistics from being completely up to date, since extra + locking would be required to merge counters that track thread cache + operations.</para> <para>The <function>malloc_usable_size()</function> function returns the usable size of the allocation pointed to by @@ -943,6 +944,9 @@ mallctl("arena." STRINGIFY(MALLCTL_ARENAS_ALL) ".decay", <citerefentry><refentrytitle>munmap</refentrytitle> <manvolnum>2</manvolnum></citerefentry> or equivalent (see <link linkend="stats.retained">stats.retained</link> for related details). + It also makes jemalloc use <citerefentry> + <refentrytitle>mmap</refentrytitle><manvolnum>2</manvolnum> + </citerefentry> in a more greedy way, mapping larger chunks in one go. This option is disabled by default unless discarding virtual memory is known to trigger platform-specific performance problems, e.g. for [64-bit] Linux, which @@ -988,6 +992,24 @@ mallctl("arena." STRINGIFY(MALLCTL_ARENAS_ALL) ".decay", number of CPUs, or one if there is a single CPU.</para></listitem> </varlistentry> + <varlistentry id="opt.oversize_threshold"> + <term> + <mallctl>opt.oversize_threshold</mallctl> + (<type>size_t</type>) + <literal>r-</literal> + </term> + <listitem><para>The threshold in bytes of which requests are considered + oversize. Allocation requests with greater sizes are fulfilled from a + dedicated arena (automatically managed, however not within + <literal>narenas</literal>), in order to reduce fragmentation by not + mixing huge allocations with small ones. In addition, the decay API + guarantees on the extents greater than the specified threshold may be + overridden. Note that requests with arena index specified via + <constant>MALLOCX_ARENA</constant>, or threads associated with explicit + arenas will not be considered. The default threshold is 8MiB. Values + not within large size classes disables this feature.</para></listitem> + </varlistentry> + <varlistentry id="opt.percpu_arena"> <term> <mallctl>opt.percpu_arena</mallctl> @@ -1009,7 +1031,7 @@ mallctl("arena." STRINGIFY(MALLCTL_ARENAS_ALL) ".decay", <varlistentry id="opt.background_thread"> <term> <mallctl>opt.background_thread</mallctl> - (<type>const bool</type>) + (<type>bool</type>) <literal>r-</literal> </term> <listitem><para>Internal background worker threads enabled/disabled. @@ -1024,7 +1046,7 @@ mallctl("arena." STRINGIFY(MALLCTL_ARENAS_ALL) ".decay", <varlistentry id="opt.max_background_threads"> <term> <mallctl>opt.max_background_threads</mallctl> - (<type>const size_t</type>) + (<type>size_t</type>) <literal>r-</literal> </term> <listitem><para>Maximum number of background threads that will be created @@ -1055,7 +1077,11 @@ mallctl("arena." STRINGIFY(MALLCTL_ARENAS_ALL) ".decay", linkend="arena.i.dirty_decay_ms"><mallctl>arena.<i>.dirty_decay_ms</mallctl></link> for related dynamic control options. See <link linkend="opt.muzzy_decay_ms"><mallctl>opt.muzzy_decay_ms</mallctl></link> - for a description of muzzy pages.</para></listitem> + for a description of muzzy pages.for a description of muzzy pages. Note + that when the <link + linkend="opt.oversize_threshold"><mallctl>oversize_threshold</mallctl></link> + feature is enabled, the arenas reserved for oversize requests may have + its own default decay settings.</para></listitem> </varlistentry> <varlistentry id="opt.muzzy_decay_ms"> @@ -1763,10 +1789,11 @@ malloc_conf = "xmalloc:true";]]></programlisting> to control allocation for arenas explicitly created via <link linkend="arenas.create"><mallctl>arenas.create</mallctl></link> such that all extents originate from an application-supplied extent allocator - (by specifying the custom extent hook functions during arena creation), - but the automatically created arenas will have already created extents - prior to the application having an opportunity to take over extent - allocation.</para> + (by specifying the custom extent hook functions during arena creation). + However, the API guarantees for the automatically created arenas may be + relaxed -- hooks set there may be called in a "best effort" fashion; in + addition there may be extents created prior to the application having an + opportunity to take over extent allocation.</para> <programlisting language="C"><![CDATA[ typedef extent_hooks_s extent_hooks_t; @@ -2593,6 +2620,17 @@ struct extent_hooks_s { details.</para></listitem> </varlistentry> + <varlistentry id="stats.arenas.i.extent_avail"> + <term> + <mallctl>stats.arenas.<i>.extent_avail</mallctl> + (<type>size_t</type>) + <literal>r-</literal> + [<option>--enable-stats</option>] + </term> + <listitem><para>Number of allocated (but unused) extent structs in this + arena.</para></listitem> + </varlistentry> + <varlistentry id="stats.arenas.i.base"> <term> <mallctl>stats.arenas.<i>.base</mallctl> @@ -2922,6 +2960,30 @@ struct extent_hooks_s { counters</link>.</para></listitem> </varlistentry> + <varlistentry id="stats.arenas.i.extents.n"> + <term> + <mallctl>stats.arenas.<i>.extents.<j>.n{extent_type}</mallctl> + (<type>size_t</type>) + <literal>r-</literal> + [<option>--enable-stats</option>] + </term> + <listitem><para> Number of extents of the given type in this arena in + the bucket corresponding to page size index <j>. The extent type + is one of dirty, muzzy, or retained.</para></listitem> + </varlistentry> + + <varlistentry id="stats.arenas.i.extents.bytes"> + <term> + <mallctl>stats.arenas.<i>.extents.<j>.{extent_type}_bytes</mallctl> + (<type>size_t</type>) + <literal>r-</literal> + [<option>--enable-stats</option>] + </term> + <listitem><para> Sum of the bytes managed by extents of the given type + in this arena in the bucket corresponding to page size index <j>. + The extent type is one of dirty, muzzy, or retained.</para></listitem> + </varlistentry> + <varlistentry id="stats.arenas.i.lextents.j.nmalloc"> <term> <mallctl>stats.arenas.<i>.lextents.<j>.nmalloc</mallctl> |
