diff options
author | Jason Evans <jasone@canonware.com> | 2016-12-22 22:39:10 (GMT) |
---|---|---|
committer | Jason Evans <jasone@canonware.com> | 2016-12-27 02:08:28 (GMT) |
commit | a0dd3a4483e2e72ee80e70424a6522f873f2c7ff (patch) | |
tree | 35653ce115166355fd3989dff22714dc0402bf15 /doc/jemalloc.xml.in | |
parent | a6e86810d83aba0d94d0f6423ed09e8e6e0909fa (diff) | |
download | jemalloc-a0dd3a4483e2e72ee80e70424a6522f873f2c7ff.zip jemalloc-a0dd3a4483e2e72ee80e70424a6522f873f2c7ff.tar.gz jemalloc-a0dd3a4483e2e72ee80e70424a6522f873f2c7ff.tar.bz2 |
Implement per arena base allocators.
Add/rename related mallctls:
- Add stats.arenas.<i>.base .
- Rename stats.arenas.<i>.metadata to stats.arenas.<i>.internal .
- Add stats.arenas.<i>.resident .
Modify the arenas.extend mallctl to take an optional (extent_hooks_t *)
argument so that it is possible for all base allocations to be serviced
by the specified extent hooks.
This resolves #463.
Diffstat (limited to 'doc/jemalloc.xml.in')
-rw-r--r-- | doc/jemalloc.xml.in | 63 |
1 files changed, 44 insertions, 19 deletions
diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in index 990aacf..5923481 100644 --- a/doc/jemalloc.xml.in +++ b/doc/jemalloc.xml.in @@ -1500,9 +1500,9 @@ malloc_conf = "xmalloc:true";]]></programlisting> to control allocation for arenas created via <link linkend="arenas.extend"><mallctl>arenas.extend</mallctl></link> such that all extents originate from an application-supplied extent allocator - (by setting custom extent hook functions just after arena creation), but - the automatically created arenas may have already created extents prior - to the application having an opportunity to take over extent + (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> <programlisting language="C"><![CDATA[ @@ -1832,11 +1832,12 @@ struct extent_hooks_s { <varlistentry id="arenas.extend"> <term> <mallctl>arenas.extend</mallctl> - (<type>unsigned</type>) - <literal>r-</literal> + (<type>unsigned</type>, <type>extent_hooks_t *</type>) + <literal>rw</literal> </term> - <listitem><para>Extend the array of arenas by appending a new arena, - and returning the new arena index.</para></listitem> + <listitem><para>Extend the array of arenas by appending a new arena with + optionally specified extent hooks, and returning the new arena + index.</para></listitem> </varlistentry> <varlistentry id="prof.thread_active_init"> @@ -1976,9 +1977,11 @@ struct extent_hooks_s { [<option>--enable-stats</option>] </term> <listitem><para>Total number of bytes dedicated to metadata, which - comprise base allocations used for bootstrap-sensitive internal - allocator data structures and internal allocations (see <link - linkend="stats.arenas.i.metadata"><mallctl>stats.arenas.<i>.metadata</mallctl></link>).</para></listitem> + comprise base allocations used for bootstrap-sensitive allocator + metadata structures (see <link + linkend="stats.arenas.i.base"><mallctl>stats.arenas.<i>.base</mallctl></link>) + and internal allocations (see <link + linkend="stats.arenas.i.internal"><mallctl>stats.arenas.<i>.internal</mallctl></link>).</para></listitem> </varlistentry> <varlistentry id="stats.resident"> @@ -2114,9 +2117,21 @@ struct extent_hooks_s { details.</para></listitem> </varlistentry> - <varlistentry id="stats.arenas.i.metadata"> + <varlistentry id="stats.arenas.i.base"> + <term> + <mallctl>stats.arenas.<i>.base</mallctl> + (<type>size_t</type>) + <literal>r-</literal> + [<option>--enable-stats</option>] + </term> + <listitem><para> + Number of bytes dedicated to bootstrap-sensitive allocator metadata + structures.</para></listitem> + </varlistentry> + + <varlistentry id="stats.arenas.i.internal"> <term> - <mallctl>stats.arenas.<i>.metadata</mallctl> + <mallctl>stats.arenas.<i>.internal</mallctl> (<type>size_t</type>) <literal>r-</literal> [<option>--enable-stats</option>] @@ -2124,13 +2139,23 @@ struct extent_hooks_s { <listitem><para>Number of bytes dedicated to internal allocations. Internal allocations differ from application-originated allocations in that they are for internal use, and that they are omitted from heap - profiles. This statistic is reported separately from <link - linkend="stats.metadata"><mallctl>stats.metadata</mallctl></link> - because it overlaps with e.g. the <link - linkend="stats.allocated"><mallctl>stats.allocated</mallctl></link> and - <link linkend="stats.active"><mallctl>stats.active</mallctl></link> - statistics, whereas the other metadata statistics do - not.</para></listitem> + profiles.</para></listitem> + </varlistentry> + + <varlistentry id="stats.arenas.i.resident"> + <term> + <mallctl>stats.arenas.<i>.resident</mallctl> + (<type>size_t</type>) + <literal>r-</literal> + [<option>--enable-stats</option>] + </term> + <listitem><para>Maximum number of bytes in physically resident data + pages mapped by the arena, comprising all pages dedicated to allocator + metadata, pages backing active allocations, and unused dirty pages. + This is a maximum rather than precise because pages may not actually be + physically resident if they correspond to demand-zeroed virtual memory + that has not yet been touched. This is a multiple of the page + size.</para></listitem> </varlistentry> <varlistentry id="stats.arenas.i.npurge"> |