mirror of
https://github.com/jemalloc/jemalloc.git
synced 2026-08-26 09:03:33 +03:00
PA: Make mapped stat atomic.
We always have atomic_zu_t, and mapped/unmapped transitions are always expensive enough that trying to piggyback on a lock is a waste of time.
This commit is contained in:
parent
3c28aa6f17
commit
436789ad96
6 changed files with 22 additions and 30 deletions
11
src/ctl.c
11
src/ctl.c
|
|
@ -861,7 +861,7 @@ ctl_arena_stats_sdmerge(ctl_arena_t *ctl_sdarena, ctl_arena_t *ctl_arena,
|
|||
ctl_arena_stats_t *astats = ctl_arena->astats;
|
||||
|
||||
if (!destroyed) {
|
||||
ctl_accum_locked_zu(
|
||||
ctl_accum_atomic_zu(
|
||||
&sdstats->astats.pa_shard_stats.mapped,
|
||||
&astats->astats.pa_shard_stats.mapped);
|
||||
ctl_accum_locked_zu(&sdstats->astats.retained,
|
||||
|
|
@ -1101,8 +1101,9 @@ ctl_refresh(tsdn_t *tsdn) {
|
|||
&ctl_sarena->astats->astats.metadata_thp, ATOMIC_RELAXED);
|
||||
ctl_stats->resident = atomic_load_zu(
|
||||
&ctl_sarena->astats->astats.resident, ATOMIC_RELAXED);
|
||||
ctl_stats->mapped = locked_read_atomic_zu(
|
||||
&ctl_sarena->astats->astats.pa_shard_stats.mapped);
|
||||
ctl_stats->mapped = atomic_load_zu(
|
||||
&ctl_sarena->astats->astats.pa_shard_stats.mapped,
|
||||
ATOMIC_RELAXED);
|
||||
ctl_stats->retained = locked_read_atomic_zu(
|
||||
&ctl_sarena->astats->astats.retained);
|
||||
|
||||
|
|
@ -2913,8 +2914,8 @@ CTL_RO_GEN(stats_arenas_i_pactive, arenas_i(mib[2])->pactive, size_t)
|
|||
CTL_RO_GEN(stats_arenas_i_pdirty, arenas_i(mib[2])->pdirty, size_t)
|
||||
CTL_RO_GEN(stats_arenas_i_pmuzzy, arenas_i(mib[2])->pmuzzy, size_t)
|
||||
CTL_RO_CGEN(config_stats, stats_arenas_i_mapped,
|
||||
locked_read_atomic_zu(&arenas_i(
|
||||
mib[2])->astats->astats.pa_shard_stats.mapped), size_t)
|
||||
atomic_load_zu(&arenas_i(mib[2])->astats->astats.pa_shard_stats.mapped,
|
||||
ATOMIC_RELAXED), size_t)
|
||||
CTL_RO_CGEN(config_stats, stats_arenas_i_retained,
|
||||
locked_read_atomic_zu(&arenas_i(mib[2])->astats->astats.retained),
|
||||
size_t)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue