Miscellaneous s/chunk/extent/ updates.

This commit is contained in:
Jason Evans 2016-06-01 13:53:56 -07:00
parent a43db1c608
commit c8c3cbdf47
8 changed files with 17 additions and 19 deletions

View File

@ -2087,12 +2087,12 @@ typedef struct {
<literal>r-</literal> <literal>r-</literal>
[<option>--enable-stats</option>] [<option>--enable-stats</option>]
</term> </term>
<listitem><para>Total number of bytes in active chunks mapped by the <listitem><para>Total number of bytes in active extents mapped by the
allocator. This is a multiple of the chunk size, and is larger than allocator. This is larger than <link
<link linkend="stats.active"><mallctl>stats.active</mallctl></link>. linkend="stats.active"><mallctl>stats.active</mallctl></link>. This
This does not include inactive chunks, even those that contain unused does not include inactive extents, even those that contain unused dirty
dirty pages, which means that there is no strict ordering between this pages, which means that there is no strict ordering between this and
and <link <link
linkend="stats.resident"><mallctl>stats.resident</mallctl></link>.</para></listitem> linkend="stats.resident"><mallctl>stats.resident</mallctl></link>.</para></listitem>
</varlistentry> </varlistentry>
@ -2737,9 +2737,10 @@ MAPPED_LIBRARIES:
<para>To dump core whenever a problem occurs: <para>To dump core whenever a problem occurs:
<screen>ln -s 'abort:true' /etc/malloc.conf</screen> <screen>ln -s 'abort:true' /etc/malloc.conf</screen>
</para> </para>
<para>To specify in the source a chunk size that is 16 MiB: <para>To specify in the source that only one arena should be automatically
created:
<programlisting language="C"><![CDATA[ <programlisting language="C"><![CDATA[
malloc_conf = "lg_chunk:24";]]></programlisting></para> malloc_conf = "narenas:1";]]></programlisting></para>
</refsect1> </refsect1>
<refsect1 id="see_also"> <refsect1 id="see_also">
<title>SEE ALSO</title> <title>SEE ALSO</title>

View File

@ -137,7 +137,7 @@
#undef JEMALLOC_TCACHE #undef JEMALLOC_TCACHE
/* /*
* JEMALLOC_DSS enables use of sbrk(2) to allocate chunks from the data storage * JEMALLOC_DSS enables use of sbrk(2) to allocate extents from the data storage
* segment (DSS). * segment (DSS).
*/ */
#undef JEMALLOC_DSS #undef JEMALLOC_DSS
@ -176,7 +176,7 @@
#undef JEMALLOC_MAPS_COALESCE #undef JEMALLOC_MAPS_COALESCE
/* /*
* If defined, use munmap() to unmap freed chunks, rather than storing them for * If defined, use munmap() to unmap freed extents, rather than storing them for
* later reuse. This is disabled by default on Linux because common sequences * later reuse. This is disabled by default on Linux because common sequences
* of mmap()/munmap() calls will cause virtual memory map holes. * of mmap()/munmap() calls will cause virtual memory map holes.
*/ */

View File

@ -1,6 +1,6 @@
/* /*
* This radix tree implementation is tailored to the singular purpose of * This radix tree implementation is tailored to the singular purpose of
* associating metadata with chunks that are currently owned by jemalloc. * associating metadata with extents that are currently owned by jemalloc.
* *
******************************************************************************* *******************************************************************************
*/ */

View File

@ -5,7 +5,6 @@ typedef struct tcache_bin_stats_s tcache_bin_stats_t;
typedef struct malloc_bin_stats_s malloc_bin_stats_t; typedef struct malloc_bin_stats_s malloc_bin_stats_t;
typedef struct malloc_large_stats_s malloc_large_stats_t; typedef struct malloc_large_stats_s malloc_large_stats_t;
typedef struct arena_stats_s arena_stats_t; typedef struct arena_stats_s arena_stats_t;
typedef struct chunk_stats_s chunk_stats_t;
#endif /* JEMALLOC_H_TYPES */ #endif /* JEMALLOC_H_TYPES */
/******************************************************************************/ /******************************************************************************/
@ -76,7 +75,7 @@ struct malloc_large_stats_s {
*/ */
uint64_t nrequests; uint64_t nrequests;
/* Current number of (multi-)chunk allocations of this size class. */ /* Current number of allocations of this size class. */
size_t curlextents; size_t curlextents;
}; };

View File

@ -54,7 +54,7 @@ zone_size(malloc_zone_t *zone, void *ptr)
* our zone into two parts, and use one as the default allocator and * our zone into two parts, and use one as the default allocator and
* the other as the default deallocator/reallocator. Since that will * the other as the default deallocator/reallocator. Since that will
* not work in practice, we must check all pointers to assure that they * not work in practice, we must check all pointers to assure that they
* reside within a mapped chunk before determining size. * reside within a mapped extent before determining size.
*/ */
return (ivsalloc(tsdn_fetch(), ptr)); return (ivsalloc(tsdn_fetch(), ptr));
} }

View File

@ -1,6 +1,5 @@
#include "test/jemalloc_test.h" #include "test/jemalloc_test.h"
#define CHUNK 0x400000
/* #define MAXALIGN ((size_t)UINT64_C(0x80000000000)) */ /* #define MAXALIGN ((size_t)UINT64_C(0x80000000000)) */
#define MAXALIGN ((size_t)0x2000000LU) #define MAXALIGN ((size_t)0x2000000LU)
#define NITER 4 #define NITER 4

View File

@ -1,6 +1,5 @@
#include "test/jemalloc_test.h" #include "test/jemalloc_test.h"
#define CHUNK 0x400000
/* #define MAXALIGN ((size_t)UINT64_C(0x80000000000)) */ /* #define MAXALIGN ((size_t)UINT64_C(0x80000000000)) */
#define MAXALIGN ((size_t)0x2000000LU) #define MAXALIGN ((size_t)0x2000000LU)
#define NITER 4 #define NITER 4

View File

@ -625,7 +625,7 @@ TEST_END
TEST_BEGIN(test_arenas_lextent_constants) TEST_BEGIN(test_arenas_lextent_constants)
{ {
#define TEST_ARENAS_HCHUNK_CONSTANT(t, name, expected) do { \ #define TEST_ARENAS_LEXTENT_CONSTANT(t, name, expected) do { \
t name; \ t name; \
size_t sz = sizeof(t); \ size_t sz = sizeof(t); \
assert_d_eq(mallctl("arenas.lextent.0."#name, &name, &sz, NULL, \ assert_d_eq(mallctl("arenas.lextent.0."#name, &name, &sz, NULL, \
@ -633,9 +633,9 @@ TEST_BEGIN(test_arenas_lextent_constants)
assert_zu_eq(name, expected, "Incorrect "#name" size"); \ assert_zu_eq(name, expected, "Incorrect "#name" size"); \
} while (0) } while (0)
TEST_ARENAS_HCHUNK_CONSTANT(size_t, size, LARGE_MINCLASS); TEST_ARENAS_LEXTENT_CONSTANT(size_t, size, LARGE_MINCLASS);
#undef TEST_ARENAS_HCHUNK_CONSTANT #undef TEST_ARENAS_LEXTENT_CONSTANT
} }
TEST_END TEST_END