Add the config.cache_oblivious mallctl.
This commit is contained in:
parent
37fd1115c3
commit
f2bc85298c
@ -102,7 +102,8 @@ brevity. Much more detail can be found in the git revision history:
|
|||||||
cache set distribution.
|
cache set distribution.
|
||||||
- Randomly distribute large allocation base pointer alignment relative to page
|
- Randomly distribute large allocation base pointer alignment relative to page
|
||||||
boundaries in order to more uniformly utilize CPU cache sets. This can be
|
boundaries in order to more uniformly utilize CPU cache sets. This can be
|
||||||
disabled via the --disable-cache-oblivious configure option.
|
disabled via the --disable-cache-oblivious configure option, and queried via
|
||||||
|
the "config.cache_oblivious" mallctl.
|
||||||
- Micro-optimize the fast paths for the public API functions.
|
- Micro-optimize the fast paths for the public API functions.
|
||||||
- Refactor thread-specific data to reside in a single structure. This assures
|
- Refactor thread-specific data to reside in a single structure. This assures
|
||||||
that only a single TLS read is necessary per call into the public API.
|
that only a single TLS read is necessary per call into the public API.
|
||||||
|
@ -731,6 +731,16 @@ for (i = 0; i < nbins; i++) {
|
|||||||
detecting whether another thread caused a refresh.</para></listitem>
|
detecting whether another thread caused a refresh.</para></listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry id="config.cache_oblivious">
|
||||||
|
<term>
|
||||||
|
<mallctl>config.cache_oblivious</mallctl>
|
||||||
|
(<type>bool</type>)
|
||||||
|
<literal>r-</literal>
|
||||||
|
</term>
|
||||||
|
<listitem><para><option>--enable-cache-oblivious</option> was specified
|
||||||
|
during build configuration.</para></listitem>
|
||||||
|
</varlistentry>
|
||||||
|
|
||||||
<varlistentry id="config.debug">
|
<varlistentry id="config.debug">
|
||||||
<term>
|
<term>
|
||||||
<mallctl>config.debug</mallctl>
|
<mallctl>config.debug</mallctl>
|
||||||
|
@ -73,6 +73,7 @@ CTL_PROTO(thread_allocated)
|
|||||||
CTL_PROTO(thread_allocatedp)
|
CTL_PROTO(thread_allocatedp)
|
||||||
CTL_PROTO(thread_deallocated)
|
CTL_PROTO(thread_deallocated)
|
||||||
CTL_PROTO(thread_deallocatedp)
|
CTL_PROTO(thread_deallocatedp)
|
||||||
|
CTL_PROTO(config_cache_oblivious)
|
||||||
CTL_PROTO(config_debug)
|
CTL_PROTO(config_debug)
|
||||||
CTL_PROTO(config_fill)
|
CTL_PROTO(config_fill)
|
||||||
CTL_PROTO(config_lazy_lock)
|
CTL_PROTO(config_lazy_lock)
|
||||||
@ -238,6 +239,7 @@ static const ctl_named_node_t thread_node[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const ctl_named_node_t config_node[] = {
|
static const ctl_named_node_t config_node[] = {
|
||||||
|
{NAME("cache_oblivious"), CTL(config_cache_oblivious)},
|
||||||
{NAME("debug"), CTL(config_debug)},
|
{NAME("debug"), CTL(config_debug)},
|
||||||
{NAME("fill"), CTL(config_fill)},
|
{NAME("fill"), CTL(config_fill)},
|
||||||
{NAME("lazy_lock"), CTL(config_lazy_lock)},
|
{NAME("lazy_lock"), CTL(config_lazy_lock)},
|
||||||
@ -1247,6 +1249,7 @@ label_return:
|
|||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
|
|
||||||
|
CTL_RO_BOOL_CONFIG_GEN(config_cache_oblivious)
|
||||||
CTL_RO_BOOL_CONFIG_GEN(config_debug)
|
CTL_RO_BOOL_CONFIG_GEN(config_debug)
|
||||||
CTL_RO_BOOL_CONFIG_GEN(config_fill)
|
CTL_RO_BOOL_CONFIG_GEN(config_fill)
|
||||||
CTL_RO_BOOL_CONFIG_GEN(config_lazy_lock)
|
CTL_RO_BOOL_CONFIG_GEN(config_lazy_lock)
|
||||||
|
@ -126,6 +126,7 @@ TEST_BEGIN(test_mallctl_config)
|
|||||||
assert_zu_eq(sz, sizeof(oldval), "Unexpected output size"); \
|
assert_zu_eq(sz, sizeof(oldval), "Unexpected output size"); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
TEST_MALLCTL_CONFIG(cache_oblivious);
|
||||||
TEST_MALLCTL_CONFIG(debug);
|
TEST_MALLCTL_CONFIG(debug);
|
||||||
TEST_MALLCTL_CONFIG(fill);
|
TEST_MALLCTL_CONFIG(fill);
|
||||||
TEST_MALLCTL_CONFIG(lazy_lock);
|
TEST_MALLCTL_CONFIG(lazy_lock);
|
||||||
|
Loading…
Reference in New Issue
Block a user