30#include <flow/util/stat/histo.hpp>
31#include <flow/util/stat/stat_set.hpp>
125 template<
bool ATOMIC_OR_NOT = true>
136 using Counter = std::conditional_t<S_ATOMIC_OR_NOT, std::atomic<uint64_t>, uint64_t>;
266 "N_UNUSED_IDX_HINTS should be divisible by 4, if only for this stat histogram's buckets "
267 "to be nice and even.");
292 flow::util::stat::Histogram_counter
1510template<
typename Visitor>
1515 FLOW_UTIL_STAT_DECLARE(m_sync_destroy_count, ACCUMULATOR);
1516 FLOW_UTIL_STAT_DECLARE(m_drain_destroy_count, ACCUMULATOR);
1519template<
typename Visitor>
1523 FLOW_UTIL_STAT_DECLARE(m_scans, ACCUMULATOR);
1524 FLOW_UTIL_STAT_DECLARE(m_exhaustive_scans, ACCUMULATOR);
1525 FLOW_UTIL_STAT_DECLARE(m_hints_sufficient_scans, ACCUMULATOR);
1526 FLOW_UTIL_STAT_DECLARE(m_fifo_scans, ACCUMULATOR);
1527 FLOW_UTIL_STAT_DECLARE(m_fifo_exhausted_scans, ACCUMULATOR);
1528 FLOW_UTIL_STAT_DECLARE(m_histo_zombie_ct_estimate, ACCUMULATOR);
1529 FLOW_UTIL_STAT_DECLARE(m_events.m_hints_checked, ACCUMULATOR);
1530 FLOW_UTIL_STAT_DECLARE(m_events.m_hints_stale, ACCUMULATOR);
1531 FLOW_UTIL_STAT_DECLARE(m_events.m_hints_stale_and_slots_reused, ACCUMULATOR);
1532 FLOW_UTIL_STAT_DECLARE(m_events.m_fifo_objs_checked, ACCUMULATOR);
1533 FLOW_UTIL_STAT_DECLARE(m_events.m_fifo_objs_live, ACCUMULATOR);
1536template<
typename Visitor>
1540 FLOW_UTIL_STAT_DECLARE(m_aux_pool_count, GAUGE);
1541 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_aux_pool_count_hi_wmark, m_aux_pool_count);
1542 FLOW_UTIL_STAT_DECLARE(m_use_ct_active_quanta, GAUGE);
1543 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_use_ct_active_quanta_hi_wmark, m_use_ct_active_quanta);
1544 FLOW_UTIL_STAT_DECLARE(m_use_ct_quanta, GAUGE);
1545 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_use_ct_quanta_hi_wmark, m_use_ct_quanta);
1546 FLOW_UTIL_STAT_DECLARE(m_resident_sz, GAUGE);
1547 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_resident_sz_hi_wmark, m_resident_sz);
1548 FLOW_UTIL_STAT_DECLARE(m_mapped_sz, GAUGE);
1549 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_mapped_sz_hi_wmark, m_mapped_sz);
1552template<
typename Visitor>
1557 FLOW_UTIL_STAT_DECLARE(m_client_tl_aux_pool_live_hndls, GAUGE);
1558 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_client_tl_aux_pool_live_hndls_hi_wmark, m_client_tl_aux_pool_live_hndls);
1559 FLOW_UTIL_STAT_DECLARE(m_client_tl_aux_pool_hndl_open_count, ACCUMULATOR);
1560 FLOW_UTIL_STAT_DECLARE(m_client_tl_aux_pool_hndl_open_fail_count, ACCUMULATOR);
1561 FLOW_UTIL_STAT_DECLARE(m_client_tl_aux_pool_hndl_reap_count, ACCUMULATOR);
1562 FLOW_UTIL_STAT_DECLARE(m_client_tl_aux_pool_hndl_reap_check_count, ACCUMULATOR);
1565template<
typename Visitor>
1569 FLOW_UTIL_STAT_DECLARE(m_pool_create_count, ACCUMULATOR);
1570 FLOW_UTIL_STAT_DECLARE(m_pool_create_sz, ACCUMULATOR);
1571 FLOW_UTIL_STAT_DECLARE(m_pool_destroy_count, ACCUMULATOR);
1572 FLOW_UTIL_STAT_DECLARE(m_pool_destroy_sz, ACCUMULATOR);
1573 FLOW_UTIL_STAT_DECLARE(m_pool_optional_destroy_request_count, ACCUMULATOR);
1576template<
typename Visitor>
1580 using flow::util::stat::Stat_name;
1592template<
typename Visitor>
1596 FLOW_UTIL_STAT_DECLARE(m_uniq_arena_id.m_id1, GAUGE);
1597 FLOW_UTIL_STAT_DECLARE(m_uniq_arena_id.m_id2, GAUGE);
1598 FLOW_UTIL_STAT_DECLARE(m_arena_register_count, ACCUMULATOR);
1599 FLOW_UTIL_STAT_DECLARE(m_arena_deregister_count, ACCUMULATOR);
1600 FLOW_UTIL_STAT_DECLARE(m_arena_first_register_count, ACCUMULATOR);
1601 FLOW_UTIL_STAT_DECLARE(m_arena_last_deregister_count, ACCUMULATOR);
1602 FLOW_UTIL_STAT_DECLARE(m_n_borrowed_arenas, GAUGE);
1603 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_n_borrowed_arenas_hi_wmark, m_n_borrowed_arenas);
1604 FLOW_UTIL_STAT_DECLARE(m_pool_register_count, ACCUMULATOR);
1605 FLOW_UTIL_STAT_DECLARE(m_pool_deregister_count, ACCUMULATOR);
1606 FLOW_UTIL_STAT_DECLARE(m_pool_open_count, ACCUMULATOR);
1607 FLOW_UTIL_STAT_DECLARE(m_pool_close_count, ACCUMULATOR);
1608 FLOW_UTIL_STAT_DECLARE(m_n_open_pools, GAUGE);
1609 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_n_open_pools_hi_wmark, m_n_open_pools);
1610 FLOW_UTIL_STAT_DECLARE(m_mapped_sz, GAUGE);
1611 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_mapped_sz_hi_wmark, m_mapped_sz);
1614template<
typename Visitor>
1619 FLOW_UTIL_STAT_DECLARE(m_pool_rev_lookup_tl_cache_count, GAUGE);
1620 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_pool_rev_lookup_tl_cache_count_hi_wmark, m_pool_rev_lookup_tl_cache_count);
1623template<
typename Visitor>
1628 FLOW_UTIL_STAT_DECLARE(m_pool_rev_lookup_tl_cache_count, GAUGE);
1629 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_pool_rev_lookup_tl_cache_count_hi_wmark, m_pool_rev_lookup_tl_cache_count);
1630 FLOW_UTIL_STAT_DECLARE(m_pool_fwd_lookup_tl_cache_count, GAUGE);
1631 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_pool_fwd_lookup_tl_cache_count_hi_wmark, m_pool_fwd_lookup_tl_cache_count);
1634template<
typename Visitor>
1639 FLOW_UTIL_STAT_DECLARE(m_id, GAUGE);
1640 FLOW_UTIL_STAT_DECLARE(m_sz, GAUGE);
1641 FLOW_UTIL_STAT_DECLARE(m_uniq_arena_id.m_id1, GAUGE);
1642 FLOW_UTIL_STAT_DECLARE(m_uniq_arena_id.m_id2, GAUGE);
1643 FLOW_UTIL_STAT_DECLARE(m_use_count, GAUGE);
1646template<
typename Visitor>
1650 FLOW_UTIL_STAT_DECLARE(m_uniq_arena_id.m_id1, GAUGE);
1651 FLOW_UTIL_STAT_DECLARE(m_uniq_arena_id.m_id2, GAUGE);
1652 FLOW_UTIL_STAT_DECLARE(m_native_arena_id, GAUGE);
1653 FLOW_UTIL_STAT_DECLARE(m_vaddr.m_mapped_sz, GAUGE);
1654 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_vaddr.m_mapped_sz_hi_wmark, m_vaddr.m_mapped_sz);
1655 FLOW_UTIL_STAT_DECLARE(m_vaddr.m_resident_sz, GAUGE);
1656 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_vaddr.m_resident_sz_hi_wmark, m_vaddr.m_resident_sz);
1657 FLOW_UTIL_STAT_DECLARE(m_vaddr.m_active_sz, GAUGE);
1658 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_vaddr.m_active_sz_hi_wmark, m_vaddr.m_active_sz);
1659 FLOW_UTIL_STAT_DECLARE(m_vaddr.m_inactive_resident_sz, GAUGE);
1660 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_vaddr.m_inactive_resident_sz_hi_wmark, m_vaddr.m_inactive_resident_sz);
1661 FLOW_UTIL_STAT_DECLARE(m_vaddr.m_inactive_muzzy_sz, GAUGE);
1662 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_vaddr.m_inactive_muzzy_sz_hi_wmark, m_vaddr.m_inactive_muzzy_sz);
1663 FLOW_UTIL_STAT_DECLARE(m_vaddr.m_retained_sz, GAUGE);
1664 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_vaddr.m_retained_sz_hi_wmark, m_vaddr.m_retained_sz);
1665 FLOW_UTIL_STAT_DECLARE(m_alloc.m_alloc_count, ACCUMULATOR);
1666 FLOW_UTIL_STAT_DECLARE(m_alloc.m_dealloc_count, ACCUMULATOR);
1667 FLOW_UTIL_STAT_DECLARE(m_alloc.m_alloc_sz, ACCUMULATOR);
1668 FLOW_UTIL_STAT_DECLARE(m_alloc.m_dealloc_sz, ACCUMULATOR);
1669 FLOW_UTIL_STAT_DECLARE(m_alloc.m_live_count, GAUGE);
1670 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_alloc.m_live_count_hi_wmark, m_alloc.m_live_count);
1671 FLOW_UTIL_STAT_DECLARE(m_alloc.m_live_sz, GAUGE);
1672 FLOW_UTIL_STAT_DECLARE_HI_WMARK(m_alloc.m_live_sz_hi_wmark, m_alloc.m_live_sz);
1673 FLOW_UTIL_STAT_DECLARE(m_alloc.m_histo_alloc_count_by_sz, ACCUMULATOR);
1676template<
typename Visitor>
1681 using flow::util::stat::Stat_name;
1684 const Stat_name obj_prefix{name_prefix,
"obj."};
1687 target_stats ? &target_stats->
m_owner_obj :
nullptr,
1695 src_stats ? &src_stats->
m_lend_obj :
nullptr,
1696 target_stats ? &target_stats->
m_lend_obj :
nullptr,
1699 src_stats ? &src_stats->
m_live_obj :
nullptr,
1700 target_stats ? &target_stats->
m_live_obj :
nullptr,
static constexpr size_t S_N_UNUSED_IDX_HINTS
The max number of unused-slot hints emit_unused_ct_idx_hints() can emit.
Stats-related sub-namespace, for ADL segregation and general organization.
void declare_stats(const flow::util::stat::Stat_name &name_prefix, const Owner_obj_stats *src_stats, Owner_obj_stats *target_stats, Visitor &&visitor)
Declares the stats for Owner_obj_stats.
Analogous subject matter to Owner_pool_lookup_global_stats but borrower-side.
std::atomic< unsigned int > m_pool_fwd_lookup_tl_cache_count_hi_wmark
Max of m_pool_fwd_lookup_tl_cache_count observed so far.
std::atomic< unsigned int > m_pool_rev_lookup_tl_cache_count_hi_wmark
Max of m_pool_rev_lookup_tl_cache_count observed so far.
std::atomic< unsigned int > m_pool_rev_lookup_tl_cache_count
(Gauge) Number of thread-local vaddr-to-SHM-pool caches currently in existence; equals the number of ...
std::atomic< unsigned int > m_pool_fwd_lookup_tl_cache_count
(Gauge) Number of thread-local SHM-pool-to-vaddr caches currently in existence; equals the number of ...
Loosely similar subject matter to Owner_pool_stats but regarding the borrower-side view of SHM-pools,...
std::atomic< uint64_t > m_n_open_pools
(Gauge) Analogous to m_n_borrowed_arenas but counts individual in-arena SHM-pools.
std::atomic< uint64_t > m_arena_last_deregister_count
Of the unborrowings counted by m_arena_deregister_count, exclude those wherein arena was unborrowed w...
std::atomic< uint64_t > m_n_borrowed_arenas
(Gauge) Effectively m_arena_first_register_count minus m_arena_last_deregister_count.
std::atomic< uint64_t > m_pool_deregister_count
Analogous to m_arena_deregister_count but counts individual in-arena SHM-pools.
std::atomic< uint64_t > m_mapped_sz_hi_wmark
Max of m_mapped_sz observed so far.
Uniq_arena_id m_uniq_arena_id
Iff per-arena context (else zeroes): Unique (machine-wide, between boots) ID of containing SHM-arena.
std::atomic< uint64_t > m_n_borrowed_arenas_hi_wmark
Max of m_n_borrowed_arenas observed so far.
std::atomic< uint64_t > m_pool_register_count
Analogous to m_arena_register_count but counts individual in-arena SHM-pools.
std::atomic< uint64_t > m_mapped_sz
(Gauge) The combined vaddr-space, in bytes, across the SHM-pools counted in m_n_open_pools (modulo co...
std::atomic< uint64_t > m_arena_deregister_count
Of the borrowings counted by m_arena_register_count, how many have been undone (as of this writing: v...
std::atomic< uint64_t > m_n_open_pools_hi_wmark
Max of m_n_open_pools observed so far.
std::atomic< uint64_t > m_arena_register_count
How many times an arena was borrowed (opposing user did S.lend_arena(X)), including when already-bein...
std::atomic< uint64_t > m_pool_close_count
Analogous to m_arena_last_deregister_count but counts individual in-arena SHM-pools.
std::atomic< uint64_t > m_pool_open_count
Analogous to m_arena_first_register_count but counts individual in-arena SHM-pools.
std::atomic< uint64_t > m_arena_first_register_count
Of the borrowings counted by m_arena_register_count, exclude those wherein arena was borrowed while a...
Sub-group: raw allocation activity – cumulative counts of memory-manager allocate/deallocate operatio...
size_t m_live_sz_hi_wmark
Max of m_live_sz observed so far.
uint64_t m_live_count
(Gauge) Currently-live allocation count (= m_alloc_count minus m_dealloc_count).
flow::util::stat::Histogram_counter m_histo_alloc_count_by_sz
Cumulative allocation count broken down by allocation size-class, as a histogram: each bucket counts ...
uint64_t m_dealloc_count
Cumulative count of deallocate ops (for SHM-jemalloc: jemalloc small + large ndalloc).
uint64_t m_live_count_hi_wmark
Max of m_live_count observed so far.
size_t m_live_sz
(Gauge) Currently-live allocated bytes (for SHM-jemalloc: jemalloc small + large allocated).
uint64_t m_alloc_count
Cumulative count of allocate ops (for SHM-jemalloc: jemalloc small + large nmalloc).
uint64_t m_dealloc_sz
Cumulative bytes deallocated (for SHM-jemalloc: sum over size-classes of ndalloc x size-class-byte-si...
uint64_t m_alloc_sz
Cumulative bytes allocated (for SHM-jemalloc: sum over size-classes of nmalloc x size-class-byte-size...
Sub-group: the arena's virtual-address-space / page-state footprint – how much memory it currently ho...
size_t m_active_sz
(Gauge) Bytes in pages backing live (active) allocations: ~= live allocated bytes + unused space on t...
size_t m_retained_sz_hi_wmark
Max of m_retained_sz observed so far.
size_t m_inactive_resident_sz_hi_wmark
Max of m_inactive_resident_sz observed so far.
size_t m_inactive_muzzy_sz_hi_wmark
Max of m_inactive_muzzy_sz observed so far.
size_t m_retained_sz
(Gauge) Bytes of once-used vaddr space the memory-manager has excluded from m_mapped_sz book-keeping ...
size_t m_resident_sz_hi_wmark
Max of m_resident_sz observed so far.
size_t m_mapped_sz_hi_wmark
Max of m_mapped_sz observed so far.
size_t m_inactive_resident_sz
(Gauge) Not-active (so freed from/not yet used for allocated user-buffers; contrast with m_active_sz)...
size_t m_resident_sz
(Gauge) Roughly: the peak, since arena creation, of concurrently-allocated bytes (rounded up to jemal...
size_t m_mapped_sz
(Gauge) Total bytes currently mapped from the OS into the arena's address space.
size_t m_inactive_muzzy_sz
(Gauge) Not-active (see also m_inactive_resident_sz) bytes that the memory manager has returned to th...
size_t m_active_sz_hi_wmark
Max of m_active_sz observed so far.
The memory-manager-level statistics for a single native allocator-arena (for SHM-jemalloc: one jemall...
Vaddr m_vaddr
See Vaddr doc header.
Alloc m_alloc
See Alloc doc header.
uint64_t m_native_arena_id
The memory-manager's native arena ID of arena described in *this.
Uniq_arena_id m_uniq_arena_id
Unique (machine-wide, between boots) ID of managing Flow-IPC SHM-arena. See also Shm_pool_info::m_uni...
Similar mission to Obj_db_aux_pool_stats but covers information that, by nature, is not per-arena but...
std::atomic< uint64_t > m_client_tl_aux_pool_hndl_open_count
In this process: number of times a client aux-SHM-pool handle (as described for m_client_tl_aux_pool_...
std::atomic< uint64_t > m_client_tl_aux_pool_live_hndls
(Gauge) In this process, the number of all per-owner-thread, per-arena thread-local aux SHM-pool hand...
std::atomic< uint64_t > m_client_tl_aux_pool_hndl_open_fail_count
In this process: number of times an attempt to open a client aux-SHM-pool handle (as described for m_...
std::atomic< uint64_t > m_client_tl_aux_pool_hndl_reap_count
In this process: number of times a client aux-SHM-pool handle (as described for m_client_tl_aux_pool_...
std::atomic< uint64_t > m_client_tl_aux_pool_live_hndls_hi_wmark
Max of m_client_tl_aux_pool_live_hndls observed so far.
std::atomic< uint64_t > m_client_tl_aux_pool_hndl_reap_check_count
In this process: number of times a client aux-SHM-pool handle (as described for m_client_tl_aux_pool_...
Stats about the RAM use of the arena-lending SHM-provider's auxiliary (non-user-data) SHM-pools which...
std::atomic< uint64_t > m_aux_pool_count
Number of aux SHM-pools currently in existence; incremented when a given owner-process thread first e...
std::atomic< uint64_t > m_aux_pool_count_hi_wmark
Max of m_aux_pool_count observed so far.
std::atomic< uint64_t > m_use_ct_quanta_hi_wmark
Max of m_use_ct_quanta observed so far.
std::atomic< uint64_t > m_use_ct_active_quanta_hi_wmark
Max of m_use_ct_active_quanta observed so far.
std::atomic< size_t > m_resident_sz
Of the mapped space tracked (in bytes) in m_mapped_sz, the approximate/ceiling size of resident RAM (...
std::atomic< size_t > m_mapped_sz
Total vaddr space, in bytes, reserved for SHM aux-pools.
std::atomic< uint64_t > m_use_ct_active_quanta
Of the quanta counted in m_use_ct_quanta, count of the ones in active use.
std::atomic< size_t > m_resident_sz_hi_wmark
Max of m_resident_sz observed so far.
std::atomic< size_t > m_mapped_sz_hi_wmark
Max of m_mapped_sz observed so far.
std::atomic< uint64_t > m_use_ct_quanta
Count of quanta available – not necessarily (or typically) all active – across the currently live aux...
Similar mission to shm::stat::Owner_obj_stats (which is relevant regardless of SHM-provider type); ad...
std::atomic< uint64_t > m_drain_destroy_count
Of the first-class object deletions counted in shm::stat::Owner_obj_stats::m_destroy_count,...
std::atomic< uint64_t > m_sync_destroy_count
Of the first-class object deletions counted in shm::stat::Owner_obj_stats::m_destroy_count,...
Similar mission to Owner_pool_stats but covers information that, by nature, is not per-arena but rath...
std::atomic< unsigned int > m_pool_rev_lookup_tl_cache_count_hi_wmark
Max of m_pool_rev_lookup_tl_cache_count observed so far.
std::atomic< unsigned int > m_pool_rev_lookup_tl_cache_count
(Gauge) Number of thread-local vaddr-to-SHM-pool caches currently in existence; equals the number of ...
Similar mission to shm::stat::Owner_obj_stats (which is relevant regardless of SHM-provider type) and...
std::atomic< uint64_t > m_pool_destroy_sz
Across the pool-destructions counted in m_pool_destroy_count, the sum of the actual sizes of those po...
std::atomic< uint64_t > m_pool_destroy_count
Number of times the memory manager (e.g., jemalloc for SHM-jemalloc) requested something,...
std::atomic< uint64_t > m_pool_optional_destroy_request_count
Number of times the memory manager (e.g., jemalloc for SHM-jemalloc) requested the optional removal (...
std::atomic< uint64_t > m_pool_create_count
Number of times the memory manager (e.g., jemalloc for SHM-jemalloc) requested the creation of a new ...
std::atomic< uint64_t > m_pool_create_sz
Across the pool-creations counted in m_pool_create_count, the sum of the requested/actual sizes of th...
Bundles together per-arena Owner_pool_stats and Obj_db_aux_pool_stats, so they can be accessed via on...
Obj_db_aux_pool_stats m_obj_db_aux_pool
Sub-struct with individual stats; see type's doc header.
Owner_pool_stats m_owner_pool
Sub-struct with individual stats; see type's doc header.
A bundle of several individually-documented stat-sets – object construct/dispose/live and zombie-reap...
shm::stat::Lender_obj_stats m_lend_obj
Sub-struct with individual stats; see type's doc header.
arena_lend::stat::Zombie_obj_reaper_stats m_zombie_obj_reaper_drain
(During drain-phase thread, after user thread exited) Sub-struct with individual stats; see type's do...
arena_lend::stat::Zombie_obj_reaper_stats m_zombie_obj_reaper_main
(During mainstream piggy-backed zombie reaping) Sub-struct with individual stats; see type's doc head...
arena_lend::stat::Owner_obj_stats m_owner_obj_arena_lend
Sub-struct with individual stats; see type's doc header.
shm::stat::Live_obj_stats m_live_obj
Sub-struct with individual stats; see type's doc header.
shm::stat::Owner_obj_stats m_owner_obj
Sub-struct with individual stats; see type's doc header.
This info-struct contains basic properties of a SHM-pool (in a SHM-arena).
size_t m_use_count
If applicable (otherwise left at default value: 1), the use-count or ref-count of the particular unde...
Uniq_arena_id m_uniq_arena_id
Unique (machine-wide, between boots) ID of containing SHM-arena.
uint64_t m_id
Pool ID, trivially cast to a large unsigned integer type; identifies the SHM-pool with machine-wide u...
size_t m_sz
Pool size in bytes.
IDs an arena, as a GAUGE in contexts like Shm_pool_info and per-arena Borrower_pool_stats,...
uint64_t m_id1
Iff per-arena context (else zero): Unique (machine-wide, between boots) ID of containing SHM-arena: f...
uint64_t m_id2
Iff per-arena context (else zero): Unique (machine-wide, between boots) ID of containing SHM-arena: s...
Groups stats that count events any of which can occur 0+ – not a maximum of one time – per scan.
std::conditional_t< S_ATOMIC_OR_NOT, std::atomic< uint64_t >, uint64_t > Counter
Used for all ACCUMULATORs in a *this.
Counter m_fifo_objs_checked
In the (typically-unnecessary, we hope) FIFO-zombie-search phases of the zombie-reaping scans,...
Counter m_fifo_objs_live
Of the checked-objects counted in m_fifo_objs_checked, count of those that were live – not zombies – ...
Counter m_hints_checked
The number of single-object hints scanned (each of which may or may not have resulted in 1 zombie-obj...
Counter m_hints_stale_and_slots_reused
Of the single-object hints counted in m_hints_checked, count of how many resulted in the finding that...
Counter m_hints_stale
Of the single-object hints counted in m_hints_checked, count of how many resulted in the finding that...
static constexpr bool S_ATOMIC_OR_NOT
The template parameter's value.
Cousin of arena_lend::stat::Owner_obj_stats, this tracks the zombie-reaper scan algorithm whose task ...
flow::util::stat::Histogram_counter m_histo_zombie_ct_estimate
Histogram that records, at the start of each run through the zombie-reaping scan algorithm (see m_sca...
std::atomic< uint64_t > m_scans
Number of times the zombie-reaper scan algorithm executed.
std::atomic< uint64_t > m_exhaustive_scans
Of the scans counted in m_scans, count of how many were exhaustive scans; that is performed up to onc...
std::atomic< uint64_t > m_fifo_exhausted_scans
Of the scans counted in m_scans, count of how many did not immediately exit due to the zombie-object-...
std::atomic< uint64_t > m_fifo_scans
Of the scans counted in m_scans, count of how many did not immediately exit due to the zombie-object-...
std::atomic< uint64_t > m_hints_sufficient_scans
Of the scans counted in m_scans, count of how many did not immediately exit due to the zombie-object-...
Events m_events
See Events doc header.
Flow-IPC SHM-module: SHM-provider-agnostic stats about an arena if viewed as being capable or lending...
Stats struct thematically relevant to gauging outstanding (not-yet-garbage-collected) first-class obj...
Flow-IPC SHM-module: SHM-provider-agnostic stats about an arena object if viewed as solely a memory-m...