gem5  v22.1.0.0
Public Member Functions | Private Attributes | List of all members
gem5::statistics::Group Class Reference

Statistics container. More...

#include <group.hh>

Inheritance diagram for gem5::statistics::Group:
gem5::BaseXBar::Layer< ResponsePort, RequestPort > gem5::BaseXBar::Layer< RequestPort, ResponsePort > gem5::ArmISA::MMU::Stats gem5::ArmISA::TLB::TlbStats gem5::ArmISA::TableWalker::TableWalkerStats gem5::BaseCPU::BaseCPUStats gem5::BaseCPU::GlobalStats gem5::BaseCache::CacheCmdStats gem5::BaseCache::CacheStats gem5::BaseKvmCPU::StatGroup gem5::BaseTags::BaseTagStats gem5::BaseTrafficGen::StatGroup gem5::BaseXBar::Layer< SrcType, DstType > gem5::ClockDomain::ClockDomainStats gem5::CommMonitor::MonitorStats gem5::ComputeUnit::ComputeUnitStats gem5::CopyEngine::CopyEngineStats gem5::EtherDevice::EtherDeviceStats gem5::ExecStage::ExecStageStats gem5::FALRU::CacheTracking gem5::FetchStage::FetchStageStats gem5::FlashDevice::FlashDeviceStats gem5::GPUDispatcher::GPUDispatcherStats gem5::GUPSGen::GUPSGenStat gem5::GlobalMemPipeline::GlobalMemPipelineStats gem5::HDLcd::HDLcdStats gem5::IdeDisk::IdeDiskStats gem5::LocalMemPipeline::LocalMemPipelineStats gem5::MemFootprintProbe::MemFootprintProbeStats gem5::MemTest::MemTestStats gem5::PowerDomain::PowerDomainStats gem5::PowerState::PowerStateStats gem5::RegisterFile::RegisterFileStats gem5::RiscvISA::TLB::TlbStats gem5::Root::RootStats gem5::SMMUv3::SMMUv3Stats gem5::SMMUv3BaseCache::SMMUv3BaseCacheStats gem5::ScheduleStage::ScheduleStageStats gem5::ScoreboardCheckStage::ScoreboardCheckStageStats gem5::SectorTags::SectorTagsStats gem5::Shader::ShaderStats gem5::SimObject gem5::SimpleCache::SimpleCacheStats gem5::SimpleExecContext::ExecContextStats gem5::SnoopFilter::SnoopFilterStats gem5::StackDistProbe::StackDistProbeStats gem5::TLBCoalescer::TLBCoalescerStats gem5::ThreadState::ThreadStateStats gem5::TraceCPU::ElasticDataGen::ElasticDataGenStatGroup gem5::TraceCPU::FixedRetryGen::FixedRetryGenStatGroup gem5::TraceCPU::TraceStats gem5::UFSHostDevice::UFSHostDeviceStats gem5::VegaISA::GpuTLB::VegaTLBStats gem5::VoltageDomain::VoltageDomainStats gem5::WalkCache::WalkCacheStats gem5::Wavefront::WavefrontStats gem5::Workload::WorkloadStats gem5::Workload::WorkloadStats::InstStats gem5::X86ISA::GpuTLB::GpuTLBStats gem5::X86ISA::TLB::TlbStats gem5::branch_prediction::BPredUnit::BPredUnitStats gem5::branch_prediction::LoopPredictor::LoopPredictorStats gem5::branch_prediction::StatisticalCorrector::StatisticalCorrectorStats gem5::branch_prediction::TAGEBase::TAGEBaseStats gem5::compression::Base::BaseStats gem5::compression::BaseDictionaryCompressor::DictionaryStats gem5::compression::Multi::MultiStats gem5::memory::AbstractMemory::MemStats gem5::memory::DRAMInterface::DRAMStats gem5::memory::DRAMInterface::RankStats gem5::memory::MemCtrl::CtrlStats gem5::memory::NVMInterface::NVMStats gem5::memory::qos::MemCtrl::MemCtrlStats gem5::memory::qos::MemSinkCtrl::MemSinkCtrlStats gem5::minor::Fetch2::Fetch2Stats gem5::minor::MinorStats gem5::o3::CPU::CPUStats gem5::o3::Commit::CommitStats gem5::o3::Decode::DecodeStats gem5::o3::ElasticTrace::ElasticTraceStats gem5::o3::Fetch::FetchStatGroup gem5::o3::IEW::IEWStats gem5::o3::IEW::IEWStats::ExecutedInstStats gem5::o3::InstructionQueue::IQIOStats gem5::o3::InstructionQueue::IQStats gem5::o3::LSQUnit::LSQUnitStats gem5::o3::MemDepUnit::MemDepUnitStats gem5::o3::ROB::ROBStats gem5::o3::Rename::RenameStats gem5::prefetch::Base::StatGroup gem5::prefetch::Queued::QueuedStats gem5::replacement_policy::Dueling::DuelingStats gem5::ruby::AbstractController::ControllerStats gem5::ruby::CacheMemory::CacheMemoryStats gem5::ruby::MN_TBEStorage< RetryEntry >::MN_TBEStorageStats gem5::ruby::Profiler::ProfilerStats gem5::ruby::Profiler::ProfilerStats::PerMachineTypeStats gem5::ruby::Profiler::ProfilerStats::PerRequestTypeMachineTypeStats gem5::ruby::Profiler::ProfilerStats::PerRequestTypeStats gem5::ruby::RubyPrefetcher::RubyPrefetcherStats gem5::ruby::SimpleNetwork::NetworkStats gem5::ruby::Switch::SwitchStats gem5::ruby::TBEStorage::TBEStorageStats gem5::ruby::Throttle::ThrottleStats gem5::sinic::Device::DeviceStats

Public Member Functions

 Group (Group *parent, const char *name=nullptr)
 Construct a new statistics group. More...
 
virtual ~Group ()
 
virtual void regStats ()
 Callback to set stat parameters. More...
 
virtual void resetStats ()
 Callback to reset stats. More...
 
virtual void preDumpStats ()
 Callback before stats are dumped. More...
 
void addStat (statistics::Info *info)
 Register a stat with this group. More...
 
const std::map< std::string, Group * > & getStatGroups () const
 Get all child groups associated with this object. More...
 
const std::vector< Info * > & getStats () const
 Get all stats associated with this object. More...
 
void addStatGroup (const char *name, Group *block)
 Add a stat block as a child of this block. More...
 
const InforesolveStat (std::string name) const
 Resolve a stat by its name within this group. More...
 
void mergeStatGroup (Group *block)
 Merge the contents (stats & children) of a block to this block. More...
 
 Group ()=delete
 
 Group (const Group &)=delete
 
Groupoperator= (const Group &)=delete
 

Private Attributes

GroupmergedParent
 Parent pointer if merged into parent. More...
 
std::map< std::string, Group * > statGroups
 
std::vector< Group * > mergedStatGroups
 
std::vector< Info * > stats
 

Detailed Description

Statistics container.

A stat group is a hierarchical structure that contain statistics and other groups. Groups are used by the stat system to reflect gem5's SimObject hierarchy and to expose internal hierarchy within an object. They can also be used to conveniently group stats into their own class/struct and then be merged into the parent group (typically a SimObject).

Definition at line 93 of file group.hh.

Constructor & Destructor Documentation

◆ ~Group()

gem5::statistics::Group::~Group ( )
virtual

Definition at line 64 of file group.cc.

Member Function Documentation

◆ mergeStatGroup()

void gem5::statistics::Group::mergeStatGroup ( Group block)

Merge the contents (stats & children) of a block to this block.

This is called on a parent group by the child when it is being merged into the parent.

Definition at line 160 of file group.cc.

References addStat(), mergedParent, mergedStatGroups, panic_if, gem5::VegaISA::s, and stats.

Referenced by Group(), and TEST().

◆ resolveStat()

const Info * gem5::statistics::Group::resolveStat ( std::string  name) const

Resolve a stat by its name within this group.

This method goes through the stats in this group and sub-groups and returns a pointer to the the stat that matches the provided name. The input name has to be relative to the name of this group. For example, if this group is the SimObject system.bigCluster.cpus and we want the stat system.bigCluster.cpus.ipc, the input param should be the string "ipc".

Parameters
nameName of the desired stat
Returns
Pointer to the stat with the provided name

Definition at line 128 of file group.cc.

References gem5::MipsISA::g, mergedStatGroups, name(), statGroups, and stats.

Referenced by gem5::statistics::resolve(), and TEST().

Member Data Documentation

◆ mergedParent

Group* gem5::statistics::Group::mergedParent
private

Parent pointer if merged into parent.

Definition at line 217 of file group.hh.

Referenced by addStat(), and mergeStatGroup().

◆ mergedStatGroups

std::vector<Group *> gem5::statistics::Group::mergedStatGroups
private

Definition at line 220 of file group.hh.

Referenced by mergeStatGroup(), preDumpStats(), regStats(), resetStats(), and resolveStat().

◆ statGroups

std::map<std::string, Group *> gem5::statistics::Group::statGroups
private

Definition at line 219 of file group.hh.

Referenced by addStatGroup(), getStatGroups(), preDumpStats(), regStats(), resetStats(), and resolveStat().

◆ stats

std::vector<Info *> gem5::statistics::Group::stats
private

The documentation for this class was generated from the following files:

Generated on Wed Dec 21 2022 10:24:27 for gem5 by doxygen 1.9.1