MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ctl_refresh

Function ctl_refresh

app/redis-6.2.6/deps/jemalloc/src/ctl.c:924–996  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

922}
923
924static void
925ctl_refresh(tsdn_t *tsdn) {
926 unsigned i;
927 ctl_arena_t *ctl_sarena = arenas_i(MALLCTL_ARENAS_ALL);
928 VARIABLE_ARRAY(arena_t *, tarenas, ctl_arenas->narenas);
929
930 /*
931 * Clear sum stats, since they will be merged into by
932 * ctl_arena_refresh().
933 */
934 ctl_arena_clear(ctl_sarena);
935
936 for (i = 0; i < ctl_arenas->narenas; i++) {
937 tarenas[i] = arena_get(tsdn, i, false);
938 }
939
940 for (i = 0; i < ctl_arenas->narenas; i++) {
941 ctl_arena_t *ctl_arena = arenas_i(i);
942 bool initialized = (tarenas[i] != NULL);
943
944 ctl_arena->initialized = initialized;
945 if (initialized) {
946 ctl_arena_refresh(tsdn, tarenas[i], ctl_sarena, i,
947 false);
948 }
949 }
950
951 if (config_stats) {
952 ctl_stats->allocated = ctl_sarena->astats->allocated_small +
953 atomic_load_zu(&ctl_sarena->astats->astats.allocated_large,
954 ATOMIC_RELAXED);
955 ctl_stats->active = (ctl_sarena->pactive << LG_PAGE);
956 ctl_stats->metadata = atomic_load_zu(
957 &ctl_sarena->astats->astats.base, ATOMIC_RELAXED) +
958 atomic_load_zu(&ctl_sarena->astats->astats.internal,
959 ATOMIC_RELAXED);
960 ctl_stats->metadata_thp = atomic_load_zu(
961 &ctl_sarena->astats->astats.metadata_thp, ATOMIC_RELAXED);
962 ctl_stats->resident = atomic_load_zu(
963 &ctl_sarena->astats->astats.resident, ATOMIC_RELAXED);
964 ctl_stats->mapped = atomic_load_zu(
965 &ctl_sarena->astats->astats.mapped, ATOMIC_RELAXED);
966 ctl_stats->retained = atomic_load_zu(
967 &ctl_sarena->astats->astats.retained, ATOMIC_RELAXED);
968
969 ctl_background_thread_stats_read(tsdn);
970
971#define READ_GLOBAL_MUTEX_PROF_DATA(i, mtx) \
972 malloc_mutex_lock(tsdn, &mtx); \
973 malloc_mutex_prof_read(tsdn, &ctl_stats->mutex_prof_data[i], &mtx); \
974 malloc_mutex_unlock(tsdn, &mtx);
975
976 if (config_prof && opt_prof) {
977 READ_GLOBAL_MUTEX_PROF_DATA(global_prof_mutex_prof,
978 bt2gctx_mtx);
979 }
980 if (have_background_thread) {
981 READ_GLOBAL_MUTEX_PROF_DATA(

Callers 2

ctl_initFunction · 0.85
ctl.cFile · 0.85

Calls 7

arenas_iFunction · 0.85
ctl_arena_clearFunction · 0.85
arena_getFunction · 0.85
ctl_arena_refreshFunction · 0.85
memsetFunction · 0.85
malloc_mutex_prof_readFunction · 0.85

Tested by

no test coverage detected