diff options
author | Jason Evans <je@fb.com> | 2012-02-13 22:30:52 (GMT) |
---|---|---|
committer | Jason Evans <je@fb.com> | 2012-02-13 23:03:59 (GMT) |
commit | ef8897b4b938111fcc9b54725067f1dbb33a4c20 (patch) | |
tree | 46e59a294ec4b435432de0f2bd9412f5caaec9b7 /doc | |
parent | 0fee70d718b9846cfab04225dc86a4b4216b963f (diff) | |
download | jemalloc-ef8897b4b938111fcc9b54725067f1dbb33a4c20.zip jemalloc-ef8897b4b938111fcc9b54725067f1dbb33a4c20.tar.gz jemalloc-ef8897b4b938111fcc9b54725067f1dbb33a4c20.tar.bz2 |
Make 8-byte tiny size class non-optional.
When tiny size class support was first added, it was intended to support
truly tiny size classes (even 2 bytes). However, this wasn't very
useful in practice, so the minimum tiny size class has been limited to
sizeof(void *) for a long time now. This is too small to be standards
compliant, but other commonly used malloc implementations do not even
bother using a 16-byte quantum on systems with vector units (SSE2+,
AltiVEC, etc.). As such, it is safe in practice to support an 8-byte
tiny size class on 64-bit systems that support 16-byte types.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/jemalloc.xml.in | 23 |
1 files changed, 6 insertions, 17 deletions
diff --git a/doc/jemalloc.xml.in b/doc/jemalloc.xml.in index dc11642..f9f1475 100644 --- a/doc/jemalloc.xml.in +++ b/doc/jemalloc.xml.in @@ -455,13 +455,12 @@ for (i = 0; i < nbins; i++) { allocations in constant time.</para> <para>Small objects are managed in groups by page runs. Each run maintains - a frontier and free list to track which regions are in use. Unless - <option>--disable-tiny</option> is specified during configuration, - allocation requests that are no more than half the quantum (8 or 16, - depending on architecture) are rounded up to the nearest power of two that - is at least <code language="C">sizeof(<type>void *</type>)</code>. - Allocation requests that are more than half the quantum, but no more than - the minimum cacheline-multiple size class (see the <link + a frontier and free list to track which regions are in use. Allocation + requests that are no more than half the quantum (8 or 16, depending on + architecture) are rounded up to the nearest power of two that is at least + <code language="C">sizeof(<type>void *</type>)</code>. Allocation requests + that are more than half the quantum, but no more than the minimum + cacheline-multiple size class (see the <link linkend="opt.lg_qspace_max"><mallctl>opt.lg_qspace_max</mallctl></link> option) are rounded up to the nearest multiple of the quantum. Allocation requests that are more than the minimum cacheline-multiple size class, but @@ -682,16 +681,6 @@ for (i = 0; i < nbins; i++) { <varlistentry> <term> - <mallctl>config.tiny</mallctl> - (<type>bool</type>) - <literal>r-</literal> - </term> - <listitem><para><option>--disable-tiny</option> was not specified - during build configuration.</para></listitem> - </varlistentry> - - <varlistentry> - <term> <mallctl>config.tls</mallctl> (<type>bool</type>) <literal>r-</literal> |