HPA: Track dirty stats.
This commit is contained in:
parent
68a1666e91
commit
d3e5ea03c5
@ -29,6 +29,8 @@ struct psset_bin_stats_s {
|
|||||||
size_t npageslabs;
|
size_t npageslabs;
|
||||||
/* Of them, how many pages are active? */
|
/* Of them, how many pages are active? */
|
||||||
size_t nactive;
|
size_t nactive;
|
||||||
|
/* And how many are dirty? */
|
||||||
|
size_t ndirty;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct psset_stats_s psset_stats_t;
|
typedef struct psset_stats_s psset_stats_t;
|
||||||
|
51
src/ctl.c
51
src/ctl.c
@ -231,14 +231,18 @@ CTL_PROTO(stats_arenas_i_hpa_shard_npurge_passes)
|
|||||||
CTL_PROTO(stats_arenas_i_hpa_shard_npurges)
|
CTL_PROTO(stats_arenas_i_hpa_shard_npurges)
|
||||||
CTL_PROTO(stats_arenas_i_hpa_shard_nhugifies)
|
CTL_PROTO(stats_arenas_i_hpa_shard_nhugifies)
|
||||||
CTL_PROTO(stats_arenas_i_hpa_shard_ndehugifies)
|
CTL_PROTO(stats_arenas_i_hpa_shard_ndehugifies)
|
||||||
CTL_PROTO(stats_arenas_i_hpa_shard_full_slabs_npageslabs_huge)
|
|
||||||
CTL_PROTO(stats_arenas_i_hpa_shard_full_slabs_nactive_huge)
|
|
||||||
CTL_PROTO(stats_arenas_i_hpa_shard_full_slabs_npageslabs_nonhuge)
|
CTL_PROTO(stats_arenas_i_hpa_shard_full_slabs_npageslabs_nonhuge)
|
||||||
|
CTL_PROTO(stats_arenas_i_hpa_shard_full_slabs_npageslabs_huge)
|
||||||
CTL_PROTO(stats_arenas_i_hpa_shard_full_slabs_nactive_nonhuge)
|
CTL_PROTO(stats_arenas_i_hpa_shard_full_slabs_nactive_nonhuge)
|
||||||
CTL_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_huge)
|
CTL_PROTO(stats_arenas_i_hpa_shard_full_slabs_nactive_huge)
|
||||||
|
CTL_PROTO(stats_arenas_i_hpa_shard_full_slabs_ndirty_nonhuge)
|
||||||
|
CTL_PROTO(stats_arenas_i_hpa_shard_full_slabs_ndirty_huge)
|
||||||
CTL_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_nonhuge)
|
CTL_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_nonhuge)
|
||||||
CTL_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_huge)
|
CTL_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_huge)
|
||||||
CTL_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_nonhuge)
|
CTL_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_nonhuge)
|
||||||
|
CTL_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_huge)
|
||||||
|
CTL_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j_ndirty_nonhuge)
|
||||||
|
CTL_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j_ndirty_huge)
|
||||||
INDEX_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j)
|
INDEX_PROTO(stats_arenas_i_hpa_shard_nonfull_slabs_j)
|
||||||
CTL_PROTO(stats_arenas_i_nthreads)
|
CTL_PROTO(stats_arenas_i_nthreads)
|
||||||
CTL_PROTO(stats_arenas_i_uptime)
|
CTL_PROTO(stats_arenas_i_uptime)
|
||||||
@ -651,25 +655,33 @@ MUTEX_PROF_ARENA_MUTEXES
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const ctl_named_node_t stats_arenas_i_hpa_shard_full_slabs_node[] = {
|
static const ctl_named_node_t stats_arenas_i_hpa_shard_full_slabs_node[] = {
|
||||||
{NAME("npageslabs_huge"),
|
|
||||||
CTL(stats_arenas_i_hpa_shard_full_slabs_npageslabs_huge)},
|
|
||||||
{NAME("nactive_huge"),
|
|
||||||
CTL(stats_arenas_i_hpa_shard_full_slabs_nactive_huge)},
|
|
||||||
{NAME("npageslabs_nonhuge"),
|
{NAME("npageslabs_nonhuge"),
|
||||||
CTL(stats_arenas_i_hpa_shard_full_slabs_npageslabs_nonhuge)},
|
CTL(stats_arenas_i_hpa_shard_full_slabs_npageslabs_nonhuge)},
|
||||||
|
{NAME("npageslabs_huge"),
|
||||||
|
CTL(stats_arenas_i_hpa_shard_full_slabs_npageslabs_huge)},
|
||||||
{NAME("nactive_nonhuge"),
|
{NAME("nactive_nonhuge"),
|
||||||
CTL(stats_arenas_i_hpa_shard_full_slabs_nactive_nonhuge)}
|
CTL(stats_arenas_i_hpa_shard_full_slabs_nactive_nonhuge)},
|
||||||
|
{NAME("nactive_huge"),
|
||||||
|
CTL(stats_arenas_i_hpa_shard_full_slabs_nactive_huge)},
|
||||||
|
{NAME("ndirty_nonhuge"),
|
||||||
|
CTL(stats_arenas_i_hpa_shard_full_slabs_ndirty_nonhuge)},
|
||||||
|
{NAME("ndirty_huge"),
|
||||||
|
CTL(stats_arenas_i_hpa_shard_full_slabs_ndirty_huge)}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const ctl_named_node_t stats_arenas_i_hpa_shard_nonfull_slabs_j_node[] = {
|
static const ctl_named_node_t stats_arenas_i_hpa_shard_nonfull_slabs_j_node[] = {
|
||||||
{NAME("npageslabs_huge"),
|
|
||||||
CTL(stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_huge)},
|
|
||||||
{NAME("nactive_huge"),
|
|
||||||
CTL(stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_huge)},
|
|
||||||
{NAME("npageslabs_nonhuge"),
|
{NAME("npageslabs_nonhuge"),
|
||||||
CTL(stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_nonhuge)},
|
CTL(stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_nonhuge)},
|
||||||
|
{NAME("npageslabs_huge"),
|
||||||
|
CTL(stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_huge)},
|
||||||
{NAME("nactive_nonhuge"),
|
{NAME("nactive_nonhuge"),
|
||||||
CTL(stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_nonhuge)}
|
CTL(stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_nonhuge)},
|
||||||
|
{NAME("nactive_huge"),
|
||||||
|
CTL(stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_huge)},
|
||||||
|
{NAME("ndirty_nonhuge"),
|
||||||
|
CTL(stats_arenas_i_hpa_shard_nonfull_slabs_j_ndirty_nonhuge)},
|
||||||
|
{NAME("ndirty_huge"),
|
||||||
|
CTL(stats_arenas_i_hpa_shard_nonfull_slabs_j_ndirty_huge)}
|
||||||
};
|
};
|
||||||
|
|
||||||
static const ctl_named_node_t super_stats_arenas_i_hpa_shard_nonfull_slabs_j_node[] = {
|
static const ctl_named_node_t super_stats_arenas_i_hpa_shard_nonfull_slabs_j_node[] = {
|
||||||
@ -3519,6 +3531,8 @@ CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_full_slabs_npageslabs_nonhuge
|
|||||||
size_t);
|
size_t);
|
||||||
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_full_slabs_nactive_nonhuge,
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_full_slabs_nactive_nonhuge,
|
||||||
arenas_i(mib[2])->astats->hpastats.psset_stats.full_slabs[0].nactive, size_t);
|
arenas_i(mib[2])->astats->hpastats.psset_stats.full_slabs[0].nactive, size_t);
|
||||||
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_full_slabs_ndirty_nonhuge,
|
||||||
|
arenas_i(mib[2])->astats->hpastats.psset_stats.full_slabs[0].ndirty, size_t);
|
||||||
|
|
||||||
/* Full, huge */
|
/* Full, huge */
|
||||||
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_full_slabs_npageslabs_huge,
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_full_slabs_npageslabs_huge,
|
||||||
@ -3526,6 +3540,9 @@ CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_full_slabs_npageslabs_huge,
|
|||||||
size_t);
|
size_t);
|
||||||
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_full_slabs_nactive_huge,
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_full_slabs_nactive_huge,
|
||||||
arenas_i(mib[2])->astats->hpastats.psset_stats.full_slabs[1].nactive, size_t);
|
arenas_i(mib[2])->astats->hpastats.psset_stats.full_slabs[1].nactive, size_t);
|
||||||
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_full_slabs_ndirty_huge,
|
||||||
|
arenas_i(mib[2])->astats->hpastats.psset_stats.full_slabs[1].ndirty, size_t);
|
||||||
|
|
||||||
|
|
||||||
/* Nonfull, nonhuge */
|
/* Nonfull, nonhuge */
|
||||||
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_nonhuge,
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_nonhuge,
|
||||||
@ -3534,6 +3551,9 @@ CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_no
|
|||||||
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_nonhuge,
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_nonhuge,
|
||||||
arenas_i(mib[2])->astats->hpastats.psset_stats.nonfull_slabs[mib[5]][0].nactive,
|
arenas_i(mib[2])->astats->hpastats.psset_stats.nonfull_slabs[mib[5]][0].nactive,
|
||||||
size_t);
|
size_t);
|
||||||
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_ndirty_nonhuge,
|
||||||
|
arenas_i(mib[2])->astats->hpastats.psset_stats.nonfull_slabs[mib[5]][0].ndirty,
|
||||||
|
size_t);
|
||||||
|
|
||||||
/* Nonfull, huge */
|
/* Nonfull, huge */
|
||||||
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_huge,
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_huge,
|
||||||
@ -3542,6 +3562,9 @@ CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_npageslabs_hu
|
|||||||
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_huge,
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_nactive_huge,
|
||||||
arenas_i(mib[2])->astats->hpastats.psset_stats.nonfull_slabs[mib[5]][1].nactive,
|
arenas_i(mib[2])->astats->hpastats.psset_stats.nonfull_slabs[mib[5]][1].nactive,
|
||||||
size_t);
|
size_t);
|
||||||
|
CTL_RO_CGEN(config_stats, stats_arenas_i_hpa_shard_nonfull_slabs_j_ndirty_huge,
|
||||||
|
arenas_i(mib[2])->astats->hpastats.psset_stats.nonfull_slabs[mib[5]][1].ndirty,
|
||||||
|
size_t);
|
||||||
|
|
||||||
static const ctl_named_node_t *
|
static const ctl_named_node_t *
|
||||||
stats_arenas_i_hpa_shard_nonfull_slabs_j_index(tsdn_t *tsdn, const size_t *mib,
|
stats_arenas_i_hpa_shard_nonfull_slabs_j_index(tsdn_t *tsdn, const size_t *mib,
|
||||||
|
@ -21,6 +21,7 @@ static void
|
|||||||
psset_bin_stats_accum(psset_bin_stats_t *dst, psset_bin_stats_t *src) {
|
psset_bin_stats_accum(psset_bin_stats_t *dst, psset_bin_stats_t *src) {
|
||||||
dst->npageslabs += src->npageslabs;
|
dst->npageslabs += src->npageslabs;
|
||||||
dst->nactive += src->nactive;
|
dst->nactive += src->nactive;
|
||||||
|
dst->ndirty += src->ndirty;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -51,8 +52,8 @@ psset_bin_stats_insert_remove(psset_bin_stats_t *binstats, hpdata_t *ps,
|
|||||||
size_t mul = insert ? (size_t)1 : (size_t)-1;
|
size_t mul = insert ? (size_t)1 : (size_t)-1;
|
||||||
size_t huge_idx = (size_t)hpdata_huge_get(ps);
|
size_t huge_idx = (size_t)hpdata_huge_get(ps);
|
||||||
binstats[huge_idx].npageslabs += mul * 1;
|
binstats[huge_idx].npageslabs += mul * 1;
|
||||||
size_t nactive = hpdata_nactive_get(ps);
|
binstats[huge_idx].nactive += mul * hpdata_nactive_get(ps);
|
||||||
binstats[huge_idx].nactive += mul * nactive;
|
binstats[huge_idx].ndirty += mul * hpdata_ndirty_get(ps);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
34
src/stats.c
34
src/stats.c
@ -810,16 +810,20 @@ stats_arena_hpa_shard_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
|
|||||||
size_t npageslabs_huge;
|
size_t npageslabs_huge;
|
||||||
size_t nactive_huge;
|
size_t nactive_huge;
|
||||||
size_t ninactive_huge;
|
size_t ninactive_huge;
|
||||||
|
size_t ndirty_huge;
|
||||||
|
|
||||||
size_t npageslabs_nonhuge;
|
size_t npageslabs_nonhuge;
|
||||||
size_t nactive_nonhuge;
|
size_t nactive_nonhuge;
|
||||||
size_t ninactive_nonhuge;
|
size_t ninactive_nonhuge;
|
||||||
|
size_t ndirty_nonhuge;
|
||||||
|
|
||||||
CTL_M2_GET("stats.arenas.0.hpa_shard.full_slabs.npageslabs_huge",
|
CTL_M2_GET("stats.arenas.0.hpa_shard.full_slabs.npageslabs_huge",
|
||||||
i, &npageslabs_huge, size_t);
|
i, &npageslabs_huge, size_t);
|
||||||
CTL_M2_GET("stats.arenas.0.hpa_shard.full_slabs.nactive_huge",
|
CTL_M2_GET("stats.arenas.0.hpa_shard.full_slabs.nactive_huge",
|
||||||
i, &nactive_huge, size_t);
|
i, &nactive_huge, size_t);
|
||||||
ninactive_huge = npageslabs_huge * HUGEPAGE_PAGES - nactive_huge;
|
ninactive_huge = npageslabs_huge * HUGEPAGE_PAGES - nactive_huge;
|
||||||
|
CTL_M2_GET("stats.arenas.0.hpa_shard.full_slabs.ndirty_huge",
|
||||||
|
i, &ndirty_huge, size_t);
|
||||||
|
|
||||||
CTL_M2_GET("stats.arenas.0.hpa_shard.full_slabs.npageslabs_nonhuge",
|
CTL_M2_GET("stats.arenas.0.hpa_shard.full_slabs.npageslabs_nonhuge",
|
||||||
i, &npageslabs_nonhuge, size_t);
|
i, &npageslabs_nonhuge, size_t);
|
||||||
@ -827,6 +831,8 @@ stats_arena_hpa_shard_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
|
|||||||
i, &nactive_nonhuge, size_t);
|
i, &nactive_nonhuge, size_t);
|
||||||
ninactive_nonhuge = npageslabs_nonhuge * HUGEPAGE_PAGES
|
ninactive_nonhuge = npageslabs_nonhuge * HUGEPAGE_PAGES
|
||||||
- nactive_nonhuge;
|
- nactive_nonhuge;
|
||||||
|
CTL_M2_GET("stats.arenas.0.hpa_shard.full_slabs.ndirty_nonhuge",
|
||||||
|
i, &ndirty_nonhuge, size_t);
|
||||||
|
|
||||||
size_t sec_bytes;
|
size_t sec_bytes;
|
||||||
CTL_M2_GET("stats.arenas.0.hpa_sec_bytes", i, &sec_bytes, size_t);
|
CTL_M2_GET("stats.arenas.0.hpa_sec_bytes", i, &sec_bytes, size_t);
|
||||||
@ -844,7 +850,8 @@ stats_arena_hpa_shard_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
|
|||||||
" In full slabs:\n"
|
" In full slabs:\n"
|
||||||
" npageslabs: %zu huge, %zu nonhuge\n"
|
" npageslabs: %zu huge, %zu nonhuge\n"
|
||||||
" nactive: %zu huge, %zu nonhuge \n"
|
" nactive: %zu huge, %zu nonhuge \n"
|
||||||
" ninactive: %zu huge, %zu nonhuge \n",
|
" ninactive: %zu huge, %zu nonhuge \n"
|
||||||
|
" ndirty: %zu huge, %zu nonhuge \n",
|
||||||
nevictions, rate_per_second(nevictions, uptime),
|
nevictions, rate_per_second(nevictions, uptime),
|
||||||
npurge_passes, rate_per_second(npurge_passes, uptime),
|
npurge_passes, rate_per_second(npurge_passes, uptime),
|
||||||
npurges, rate_per_second(npurges, uptime),
|
npurges, rate_per_second(npurges, uptime),
|
||||||
@ -852,7 +859,9 @@ stats_arena_hpa_shard_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
|
|||||||
ndehugifies, rate_per_second(ndehugifies, uptime),
|
ndehugifies, rate_per_second(ndehugifies, uptime),
|
||||||
npageslabs_huge, npageslabs_nonhuge,
|
npageslabs_huge, npageslabs_nonhuge,
|
||||||
nactive_huge, nactive_nonhuge,
|
nactive_huge, nactive_nonhuge,
|
||||||
ninactive_huge, ninactive_nonhuge);
|
ninactive_huge, ninactive_nonhuge,
|
||||||
|
ndirty_huge, ndirty_nonhuge);
|
||||||
|
|
||||||
emitter_json_object_kv_begin(emitter, "hpa_shard");
|
emitter_json_object_kv_begin(emitter, "hpa_shard");
|
||||||
emitter_json_kv(emitter, "nevictions", emitter_type_uint64,
|
emitter_json_kv(emitter, "nevictions", emitter_type_uint64,
|
||||||
&nevictions);
|
&nevictions);
|
||||||
@ -868,12 +877,16 @@ stats_arena_hpa_shard_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
|
|||||||
emitter_json_object_kv_begin(emitter, "full_slabs");
|
emitter_json_object_kv_begin(emitter, "full_slabs");
|
||||||
emitter_json_kv(emitter, "npageslabs_huge", emitter_type_size,
|
emitter_json_kv(emitter, "npageslabs_huge", emitter_type_size,
|
||||||
&npageslabs_huge);
|
&npageslabs_huge);
|
||||||
emitter_json_kv(emitter, "npageslabs_nonhuge", emitter_type_size,
|
|
||||||
&npageslabs_nonhuge);
|
|
||||||
emitter_json_kv(emitter, "nactive_huge", emitter_type_size,
|
emitter_json_kv(emitter, "nactive_huge", emitter_type_size,
|
||||||
&nactive_huge);
|
&nactive_huge);
|
||||||
|
emitter_json_kv(emitter, "nactive_huge", emitter_type_size,
|
||||||
|
&nactive_huge);
|
||||||
|
emitter_json_kv(emitter, "npageslabs_nonhuge", emitter_type_size,
|
||||||
|
&npageslabs_nonhuge);
|
||||||
emitter_json_kv(emitter, "nactive_nonhuge", emitter_type_size,
|
emitter_json_kv(emitter, "nactive_nonhuge", emitter_type_size,
|
||||||
&nactive_nonhuge);
|
&nactive_nonhuge);
|
||||||
|
emitter_json_kv(emitter, "ndirty_nonhuge", emitter_type_size,
|
||||||
|
&ndirty_nonhuge);
|
||||||
emitter_json_object_end(emitter); /* End "full_slabs" */
|
emitter_json_object_end(emitter); /* End "full_slabs" */
|
||||||
|
|
||||||
COL_HDR(row, size, NULL, right, 20, size)
|
COL_HDR(row, size, NULL, right, 20, size)
|
||||||
@ -881,9 +894,11 @@ stats_arena_hpa_shard_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
|
|||||||
COL_HDR(row, npageslabs_huge, NULL, right, 16, size)
|
COL_HDR(row, npageslabs_huge, NULL, right, 16, size)
|
||||||
COL_HDR(row, nactive_huge, NULL, right, 16, size)
|
COL_HDR(row, nactive_huge, NULL, right, 16, size)
|
||||||
COL_HDR(row, ninactive_huge, NULL, right, 16, size)
|
COL_HDR(row, ninactive_huge, NULL, right, 16, size)
|
||||||
|
COL_HDR(row, ndirty_huge, NULL, right, 16, size)
|
||||||
COL_HDR(row, npageslabs_nonhuge, NULL, right, 20, size)
|
COL_HDR(row, npageslabs_nonhuge, NULL, right, 20, size)
|
||||||
COL_HDR(row, nactive_nonhuge, NULL, right, 20, size)
|
COL_HDR(row, nactive_nonhuge, NULL, right, 20, size)
|
||||||
COL_HDR(row, ninactive_nonhuge, NULL, right, 20, size)
|
COL_HDR(row, ninactive_nonhuge, NULL, right, 20, size)
|
||||||
|
COL_HDR(row, ndirty_nonhuge, NULL, right, 20, size)
|
||||||
|
|
||||||
size_t stats_arenas_mib[CTL_MAX_DEPTH];
|
size_t stats_arenas_mib[CTL_MAX_DEPTH];
|
||||||
CTL_LEAF_PREPARE(stats_arenas_mib, 0, "stats.arenas");
|
CTL_LEAF_PREPARE(stats_arenas_mib, 0, "stats.arenas");
|
||||||
@ -900,12 +915,17 @@ stats_arena_hpa_shard_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
|
|||||||
&npageslabs_huge, size_t);
|
&npageslabs_huge, size_t);
|
||||||
CTL_LEAF(stats_arenas_mib, 6, "nactive_huge",
|
CTL_LEAF(stats_arenas_mib, 6, "nactive_huge",
|
||||||
&nactive_huge, size_t);
|
&nactive_huge, size_t);
|
||||||
|
CTL_LEAF(stats_arenas_mib, 6, "ndirty_huge",
|
||||||
|
&ndirty_huge, size_t);
|
||||||
ninactive_huge = npageslabs_huge * HUGEPAGE_PAGES
|
ninactive_huge = npageslabs_huge * HUGEPAGE_PAGES
|
||||||
- nactive_huge;
|
- nactive_huge;
|
||||||
|
|
||||||
CTL_LEAF(stats_arenas_mib, 6, "npageslabs_nonhuge",
|
CTL_LEAF(stats_arenas_mib, 6, "npageslabs_nonhuge",
|
||||||
&npageslabs_nonhuge, size_t);
|
&npageslabs_nonhuge, size_t);
|
||||||
CTL_LEAF(stats_arenas_mib, 6, "nactive_nonhuge",
|
CTL_LEAF(stats_arenas_mib, 6, "nactive_nonhuge",
|
||||||
&nactive_nonhuge, size_t);
|
&nactive_nonhuge, size_t);
|
||||||
|
CTL_LEAF(stats_arenas_mib, 6, "ndirty_nonhuge",
|
||||||
|
&ndirty_nonhuge, size_t);
|
||||||
ninactive_nonhuge = npageslabs_nonhuge * HUGEPAGE_PAGES
|
ninactive_nonhuge = npageslabs_nonhuge * HUGEPAGE_PAGES
|
||||||
- nactive_nonhuge;
|
- nactive_nonhuge;
|
||||||
|
|
||||||
@ -921,9 +941,11 @@ stats_arena_hpa_shard_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
|
|||||||
col_npageslabs_huge.size_val = npageslabs_huge;
|
col_npageslabs_huge.size_val = npageslabs_huge;
|
||||||
col_nactive_huge.size_val = nactive_huge;
|
col_nactive_huge.size_val = nactive_huge;
|
||||||
col_ninactive_huge.size_val = ninactive_huge;
|
col_ninactive_huge.size_val = ninactive_huge;
|
||||||
|
col_ndirty_huge.size_val = ndirty_huge;
|
||||||
col_npageslabs_nonhuge.size_val = npageslabs_nonhuge;
|
col_npageslabs_nonhuge.size_val = npageslabs_nonhuge;
|
||||||
col_nactive_nonhuge.size_val = nactive_nonhuge;
|
col_nactive_nonhuge.size_val = nactive_nonhuge;
|
||||||
col_ninactive_nonhuge.size_val = ninactive_nonhuge;
|
col_ninactive_nonhuge.size_val = ninactive_nonhuge;
|
||||||
|
col_ndirty_nonhuge.size_val = ndirty_nonhuge;
|
||||||
if (!in_gap) {
|
if (!in_gap) {
|
||||||
emitter_table_row(emitter, &row);
|
emitter_table_row(emitter, &row);
|
||||||
}
|
}
|
||||||
@ -933,10 +955,14 @@ stats_arena_hpa_shard_print(emitter_t *emitter, unsigned i, uint64_t uptime) {
|
|||||||
&npageslabs_huge);
|
&npageslabs_huge);
|
||||||
emitter_json_kv(emitter, "nactive_huge", emitter_type_size,
|
emitter_json_kv(emitter, "nactive_huge", emitter_type_size,
|
||||||
&nactive_huge);
|
&nactive_huge);
|
||||||
|
emitter_json_kv(emitter, "ndirty_huge", emitter_type_size,
|
||||||
|
&ndirty_huge);
|
||||||
emitter_json_kv(emitter, "npageslabs_nonhuge", emitter_type_size,
|
emitter_json_kv(emitter, "npageslabs_nonhuge", emitter_type_size,
|
||||||
&npageslabs_nonhuge);
|
&npageslabs_nonhuge);
|
||||||
emitter_json_kv(emitter, "nactive_nonhuge", emitter_type_size,
|
emitter_json_kv(emitter, "nactive_nonhuge", emitter_type_size,
|
||||||
&nactive_nonhuge);
|
&nactive_nonhuge);
|
||||||
|
emitter_json_kv(emitter, "ndirty_nonhuge", emitter_type_size,
|
||||||
|
&ndirty_nonhuge);
|
||||||
emitter_json_object_end(emitter);
|
emitter_json_object_end(emitter);
|
||||||
}
|
}
|
||||||
emitter_json_array_end(emitter); /* End "nonfull_slabs" */
|
emitter_json_array_end(emitter); /* End "nonfull_slabs" */
|
||||||
|
Loading…
Reference in New Issue
Block a user