Miscellaneous s/chunk/extent/ updates.
This commit is contained in:
parent
a43db1c608
commit
c8c3cbdf47
@ -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>
|
||||||
|
@ -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.
|
||||||
*/
|
*/
|
||||||
|
@ -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.
|
||||||
*
|
*
|
||||||
*******************************************************************************
|
*******************************************************************************
|
||||||
*/
|
*/
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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));
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user