Flow-IPC 3.0.0
Flow-IPC project: Full implementation reference.
Classes | Namespaces | Functions
arena_lend_stats.hpp File Reference
#include "ipc/shm/arena_lend/detail/lend_tracker_pool.hpp"
#include "ipc/shm/shm_stats.hpp"
#include <flow/util/stat/histo.hpp>
#include <flow/util/stat/stat_set.hpp>
#include <cstdint>
#include <string>
#include <type_traits>

Go to the source code of this file.

Classes

struct  ipc::shm::arena_lend::stat::Owner_obj_stats
 Similar mission to shm::stat::Owner_obj_stats (which is relevant regardless of SHM-provider type); adds items relevant to arena-lending SHM-providers only. More...
 
struct  ipc::shm::arena_lend::stat::Zombie_obj_reaper_stats
 Cousin of arena_lend::stat::Owner_obj_stats, this tracks the zombie-reaper scan algorithm whose task is to find all first-class objects arena.construct()ed by this thread (or by the now-joined thread whose exit caused this specialized drain-thread to be spawned) that are zombie objects; and to destroy them. More...
 
struct  ipc::shm::arena_lend::stat::Zombie_obj_reaper_stats::Events< ATOMIC_OR_NOT >
 Groups stats that count events any of which can occur 0+ – not a maximum of one time – per scan. More...
 
struct  ipc::shm::arena_lend::stat::Sharded_stats
 A bundle of several individually-documented stat-sets – object construct/dispose/live and zombie-reaper stats – grouped into this one Stat_set because they are all collected together (for performance, via thread-local sharding) and therefore consumed together but separately from non-sharded items. More...
 
struct  ipc::shm::arena_lend::stat::Obj_db_aux_pool_stats
 Stats about the RAM use of the arena-lending SHM-provider's auxiliary (non-user-data) SHM-pools which are used internally to store and performantly communicate (cross-process) the current use-counts per first-class (arena.construct<T>()ed) object. More...
 
struct  ipc::shm::arena_lend::stat::Obj_db_aux_pool_global_stats
 Similar mission to Obj_db_aux_pool_stats but covers information that, by nature, is not per-arena but rather global (but still segregated by SHM-provider, such as SHM-jemalloc versus other-arena-lending-SHM-provider X). More...
 
struct  ipc::shm::arena_lend::stat::Owner_pool_stats
 Similar mission to shm::stat::Owner_obj_stats (which is relevant regardless of SHM-provider type) and Owner_obj_stats but applied specifically to the mechanism of arena-lending SHM-providers wherein each SHM-arena is divided into multiple, potentially many, SHM-pools. More...
 
struct  ipc::shm::arena_lend::stat::Pool_stats
 Bundles together per-arena Owner_pool_stats and Obj_db_aux_pool_stats, so they can be accessed via one accessor (e.g., jemalloc::Ipc_arena::pool_stats()) and handled (e.g., ostream << print(), stat_set_aggregate()) as one unit. More...
 
struct  ipc::shm::arena_lend::stat::Owner_pool_lookup_global_stats
 Similar mission to Owner_pool_stats but covers information that, by nature, is not per-arena but rather global (but still segregated by SHM-provider, such as SHM-jemalloc versus other-arena-lending-SHM-provider X); concerned with raw-offset-pointer lookups. More...
 
struct  ipc::shm::arena_lend::stat::Uniq_arena_id
 IDs an arena, as a GAUGE in contexts like Shm_pool_info and per-arena Borrower_pool_stats, uniquely machine-wide up to boot. More...
 
struct  ipc::shm::arena_lend::stat::Borrower_pool_stats
 Loosely similar subject matter to Owner_pool_stats but regarding the borrower-side view of SHM-pools, as opposed to an owner/arena-side view thereof. More...
 
struct  ipc::shm::arena_lend::stat::Borrower_pool_lookup_global_stats
 Analogous subject matter to Owner_pool_lookup_global_stats but borrower-side. More...
 
struct  ipc::shm::arena_lend::stat::Shm_pool_info
 This info-struct contains basic properties of a SHM-pool (in a SHM-arena). More...
 
struct  ipc::shm::arena_lend::stat::Memory_manager_stats
 The memory-manager-level statistics for a single native allocator-arena (for SHM-jemalloc: one jemalloc arena) backing an arena-lend Shm_arena (e.g. More...
 
struct  ipc::shm::arena_lend::stat::Memory_manager_stats::Vaddr
 Sub-group: the arena's virtual-address-space / page-state footprint – how much memory it currently holds from the OS and in what state. More...
 
struct  ipc::shm::arena_lend::stat::Memory_manager_stats::Alloc
 Sub-group: raw allocation activity – cumulative counts of memory-manager allocate/deallocate operations (e.g. More...
 

Namespaces

namespace  ipc
 Catch-all namespace for the Flow-IPC project: A library/API in modern C++17 providing high-performance communication between processes.
 
namespace  ipc::shm
 Modules for SHared Memory (SHM) support.
 
namespace  ipc::shm::arena_lend
 ipc::shm sub-module providing the SHM-provider family based on the arena-lending paradigm: each process allocates in its own arena(s), lending the resulting objects to other processes, which can read them but not allocate (nor deallocate) in that arena.
 
namespace  ipc::shm::arena_lend::stat
 Stats-related sub-namespace, for ADL segregation and general organization.
 

Functions

template<typename Visitor >
void ipc::shm::arena_lend::stat::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. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Zombie_obj_reaper_stats *src_stats, Zombie_obj_reaper_stats *target_stats, Visitor &&visitor)
 Declares the stats for Zombie_obj_reaper_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Obj_db_aux_pool_stats *src_stats, Obj_db_aux_pool_stats *target_stats, Visitor &&visitor)
 Declares the stats for Obj_db_aux_pool_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Obj_db_aux_pool_global_stats *src_stats, Obj_db_aux_pool_global_stats *target_stats, Visitor &&visitor)
 Declares the stats for Obj_db_aux_pool_global_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Owner_pool_stats *src_stats, Owner_pool_stats *target_stats, Visitor &&visitor)
 Declares the stats for Owner_pool_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Pool_stats *src_stats, Pool_stats *target_stats, Visitor &&visitor)
 Declares the stats for Pool_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Borrower_pool_stats *src_stats, Borrower_pool_stats *target_stats, Visitor &&visitor)
 Declares the stats for Borrower_pool_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Owner_pool_lookup_global_stats *src_stats, Owner_pool_lookup_global_stats *target_stats, Visitor &&visitor)
 Declares the stats for Owner_pool_lookup_global_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Borrower_pool_lookup_global_stats *src_stats, Borrower_pool_lookup_global_stats *target_stats, Visitor &&visitor)
 Declares the stats for Borrower_pool_lookup_global_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Shm_pool_info *src_stats, Shm_pool_info *target_stats, Visitor &&visitor)
 Declares the fields for Shm_pool_info, intended for use with stat::print(). More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Memory_manager_stats *src_stats, Memory_manager_stats *target_stats, Visitor &&visitor)
 Declares the stats for Memory_manager_stats. More...
 
template<typename Visitor >
void ipc::shm::arena_lend::stat::declare_stats (const flow::util::stat::Stat_name &name_prefix, const Sharded_stats *src_stats, Sharded_stats *target_stats, Visitor &&visitor)
 Declares the stats for Sharded_stats. More...