MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / ctl_refresh

Function ctl_refresh

deps/jemalloc/src/ctl.c:1043–1115  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1041}
1042
1043static void
1044ctl_refresh(tsdn_t *tsdn) {
1045 unsigned i;
1046 ctl_arena_t *ctl_sarena = arenas_i(MALLCTL_ARENAS_ALL);
1047 VARIABLE_ARRAY(arena_t *, tarenas, ctl_arenas->narenas);
1048
1049 /*
1050 * Clear sum stats, since they will be merged into by
1051 * ctl_arena_refresh().
1052 */
1053 ctl_arena_clear(ctl_sarena);
1054
1055 for (i = 0; i < ctl_arenas->narenas; i++) {
1056 tarenas[i] = arena_get(tsdn, i, false);
1057 }
1058
1059 for (i = 0; i < ctl_arenas->narenas; i++) {
1060 ctl_arena_t *ctl_arena = arenas_i(i);
1061 bool initialized = (tarenas[i] != NULL);
1062
1063 ctl_arena->initialized = initialized;
1064 if (initialized) {
1065 ctl_arena_refresh(tsdn, tarenas[i], ctl_sarena, i,
1066 false);
1067 }
1068 }
1069
1070 if (config_stats) {
1071 ctl_stats->allocated = ctl_sarena->astats->allocated_small +
1072 atomic_load_zu(&ctl_sarena->astats->astats.allocated_large,
1073 ATOMIC_RELAXED);
1074 ctl_stats->active = (ctl_sarena->pactive << LG_PAGE);
1075 ctl_stats->metadata = atomic_load_zu(
1076 &ctl_sarena->astats->astats.base, ATOMIC_RELAXED) +
1077 atomic_load_zu(&ctl_sarena->astats->astats.internal,
1078 ATOMIC_RELAXED);
1079 ctl_stats->metadata_thp = atomic_load_zu(
1080 &ctl_sarena->astats->astats.metadata_thp, ATOMIC_RELAXED);
1081 ctl_stats->resident = atomic_load_zu(
1082 &ctl_sarena->astats->astats.resident, ATOMIC_RELAXED);
1083 ctl_stats->mapped = atomic_load_zu(
1084 &ctl_sarena->astats->astats.mapped, ATOMIC_RELAXED);
1085 ctl_stats->retained = atomic_load_zu(
1086 &ctl_sarena->astats->astats.retained, ATOMIC_RELAXED);
1087
1088 ctl_background_thread_stats_read(tsdn);
1089
1090#define READ_GLOBAL_MUTEX_PROF_DATA(i, mtx) \
1091 malloc_mutex_lock(tsdn, &mtx); \
1092 malloc_mutex_prof_read(tsdn, &ctl_stats->mutex_prof_data[i], &mtx); \
1093 malloc_mutex_unlock(tsdn, &mtx);
1094
1095 if (config_prof && opt_prof) {
1096 READ_GLOBAL_MUTEX_PROF_DATA(global_prof_mutex_prof,
1097 bt2gctx_mtx);
1098 }
1099 if (have_background_thread) {
1100 READ_GLOBAL_MUTEX_PROF_DATA(

Callers 2

ctl_initFunction · 0.70
ctl.cFile · 0.70

Calls 6

arenas_iFunction · 0.70
ctl_arena_clearFunction · 0.70
ctl_arena_refreshFunction · 0.70
arena_getFunction · 0.50
malloc_mutex_prof_readFunction · 0.50

Tested by

no test coverage detected