HPA: Do deferred operations on background threads.

This commit is contained in:
David Goldblatt 2021-06-07 11:45:57 -07:00 committed by David Goldblatt
parent 583284f2d9
commit 1d4a7666d5
12 changed files with 256 additions and 7 deletions

View file

@ -1410,6 +1410,10 @@ malloc_conf_init_helper(sc_data_t *sc_data, unsigned bin_shard_sizes[SC_NBINS],
CONF_CHECK_MIN, CONF_CHECK_MAX,
true);
CONF_HANDLE_BOOL(opt_hpa, "hpa")
CONF_HANDLE_SSIZE_T(
opt_background_thread_hpa_interval_max_ms,
"background_thread_hpa_interval_max_ms", -1,
SSIZE_MAX)
CONF_HANDLE_SIZE_T(opt_hpa_opts.slab_max_alloc,
"hpa_slab_max_alloc", PAGE, HUGEPAGE,
CONF_CHECK_MIN, CONF_CHECK_MAX, true);
@ -1659,6 +1663,11 @@ malloc_conf_init(sc_data_t *sc_data, unsigned bin_shard_sizes[SC_NBINS]) {
malloc_conf_init_helper(NULL, NULL, true, opts_cache, buf);
malloc_conf_init_helper(sc_data, bin_shard_sizes, false, opts_cache,
NULL);
if (opt_hpa && opt_background_thread_hpa_interval_max_ms
== BACKGROUND_THREAD_HPA_INTERVAL_MAX_UNINITIALIZED) {
opt_background_thread_hpa_interval_max_ms =
BACKGROUND_THREAD_HPA_INTERVAL_MAX_DEFAULT_WHEN_ENABLED;
}
}
#undef MALLOC_CONF_NSOURCES