Pull tcache GC events into thread event handler

This commit is contained in:
Yinan Zhang 2019-10-24 16:41:45 -07:00
parent 198f02e797
commit 97f93fa0f2
8 changed files with 34 additions and 12 deletions

View file

@ -2350,10 +2350,6 @@ je_malloc(size_t size) {
tcache_t *tcache = tsd_tcachep_get(tsd);
if (unlikely(ticker_trytick(&tcache->gc_ticker))) {
return malloc_default(size);
}
szind_t ind = sz_size2index_lookup(size);
/*
* The thread_allocated counter in tsd serves as a general purpose

View file

@ -18,6 +18,17 @@ static void thread_##event##_event_handler(tsd_t *tsd);
ITERATE_OVER_ALL_EVENTS
#undef E
static void
thread_tcache_gc_event_handler(tsd_t *tsd) {
assert(TCACHE_GC_INCR_BYTES > 0);
assert(tcache_gc_event_wait_get(tsd) == 0U);
thread_tcache_gc_event_update(tsd, TCACHE_GC_INCR_BYTES);
tcache_t *tcache = tcache_get(tsd);
if (tcache != NULL) {
tcache_event_hard(tsd, tcache);
}
}
static void
thread_prof_sample_event_handler(tsd_t *tsd) {
assert(config_prof && opt_prof);

View file

@ -233,6 +233,10 @@ tsd_data_init(tsd_t *tsd) {
*tsd_offset_statep_get(tsd) = config_debug ? 0 :
(uint64_t)(uintptr_t)tsd;
if (TCACHE_GC_INCR_BYTES > 0) {
thread_tcache_gc_event_update(tsd, TCACHE_GC_INCR_BYTES);
}
return tsd_tcache_enabled_data_init(tsd);
}