gem5  v20.1.0.0
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
Profiler Class Reference

#include <Profiler.hh>

Public Member Functions

 Profiler (const RubySystemParams *params, RubySystem *rs)
 
 ~Profiler ()
 
void wakeup ()
 
void regStats (const std::string &name)
 
void collateStats ()
 
AddressProfilergetAddressProfiler ()
 
AddressProfilergetInstructionProfiler ()
 
void addAddressTraceSample (const RubyRequest &msg, NodeID id)
 
bool getHotLines () const
 
bool getAllInstructions () const
 

Public Attributes

RubySystemm_ruby_system
 

Private Member Functions

 Profiler (const Profiler &obj)
 
Profileroperator= (const Profiler &obj)
 

Private Attributes

AddressProfilerm_address_profiler_ptr
 
AddressProfilerm_inst_profiler_ptr
 
Stats::Histogram delayHistogram
 
std::vector< Stats::Histogram * > delayVCHistogram
 
Stats::Histogram m_outstandReqHistSeqr
 Histogram for number of outstanding requests per cycle. More...
 
Stats::Histogram m_outstandReqHistCoalsr
 
Stats::Histogram m_latencyHistSeqr
 Histogram for holding latency profile of all requests. More...
 
Stats::Histogram m_latencyHistCoalsr
 
std::vector< Stats::Histogram * > m_typeLatencyHistSeqr
 
std::vector< Stats::Histogram * > m_typeLatencyHistCoalsr
 
Stats::Histogram m_hitLatencyHistSeqr
 Histogram for holding latency profile of all requests that hit in the controller connected to this sequencer. More...
 
std::vector< Stats::Histogram * > m_hitTypeLatencyHistSeqr
 
std::vector< Stats::Histogram * > m_hitMachLatencyHistSeqr
 Histograms for profiling the latencies for requests that did not required external messages. More...
 
std::vector< std::vector< Stats::Histogram * > > m_hitTypeMachLatencyHistSeqr
 
Stats::Histogram m_missLatencyHistSeqr
 Histogram for holding latency profile of all requests that miss in the controller connected to this sequencer. More...
 
Stats::Histogram m_missLatencyHistCoalsr
 
std::vector< Stats::Histogram * > m_missTypeLatencyHistSeqr
 
std::vector< Stats::Histogram * > m_missTypeLatencyHistCoalsr
 
std::vector< Stats::Histogram * > m_missMachLatencyHistSeqr
 Histograms for profiling the latencies for requests that required external messages. More...
 
std::vector< std::vector< Stats::Histogram * > > m_missTypeMachLatencyHistSeqr
 
std::vector< Stats::Histogram * > m_missMachLatencyHistCoalsr
 
std::vector< std::vector< Stats::Histogram * > > m_missTypeMachLatencyHistCoalsr
 
std::vector< Stats::Histogram * > m_IssueToInitialDelayHistSeqr
 Histograms for recording the breakdown of miss latency. More...
 
std::vector< Stats::Histogram * > m_InitialToForwardDelayHistSeqr
 
std::vector< Stats::Histogram * > m_ForwardToFirstResponseDelayHistSeqr
 
std::vector< Stats::Histogram * > m_FirstResponseToCompletionDelayHistSeqr
 
Stats::Scalar m_IncompleteTimesSeqr [MachineType_NUM]
 
std::vector< Stats::Histogram * > m_IssueToInitialDelayHistCoalsr
 
std::vector< Stats::Histogram * > m_InitialToForwardDelayHistCoalsr
 
std::vector< Stats::Histogram * > m_ForwardToFirstResponseDelayHistCoalsr
 
std::vector< Stats::Histogram * > m_FirstResponseToCompletionDelayHistCoalsr
 
const bool m_hot_lines
 
const bool m_all_instructions
 
const uint32_t m_num_vnets
 

Detailed Description

Definition at line 64 of file Profiler.hh.

Constructor & Destructor Documentation

◆ Profiler() [1/2]

Profiler::Profiler ( const RubySystemParams *  params,
RubySystem rs 
)

◆ ~Profiler()

Profiler::~Profiler ( )

Definition at line 99 of file Profiler.cc.

◆ Profiler() [2/2]

Profiler::Profiler ( const Profiler obj)
private

Member Function Documentation

◆ addAddressTraceSample()

void Profiler::addAddressTraceSample ( const RubyRequest msg,
NodeID  id 
)

◆ collateStats()

void Profiler::collateStats ( )

Definition at line 348 of file Profiler.cc.

References Stats::DistBase< Derived, Stor >::add(), AddressProfiler::collateStats(), delayHistogram, delayVCHistogram, AbstractController::getCPUSequencer(), AbstractController::getDelayHist(), AbstractController::getDelayVCHist(), AbstractController::getGPUCoalescer(), Sequencer::getHitLatencyHist(), Sequencer::getHitMachLatencyHist(), Sequencer::getHitTypeLatencyHist(), Sequencer::getHitTypeMachLatencyHist(), Sequencer::getIncompleteTimes(), Sequencer::getInitialToForwardDelayHist(), GPUCoalescer::getInitialToForwardDelayHist(), Sequencer::getIssueToInitialDelayHist(), GPUCoalescer::getIssueToInitialDelayHist(), Sequencer::getLatencyHist(), GPUCoalescer::getLatencyHist(), Sequencer::getMissLatencyHist(), GPUCoalescer::getMissLatencyHist(), Sequencer::getMissMachLatencyHist(), GPUCoalescer::getMissMachLatencyHist(), Sequencer::getMissTypeLatencyHist(), GPUCoalescer::getMissTypeLatencyHist(), Sequencer::getMissTypeMachLatencyHist(), GPUCoalescer::getMissTypeMachLatencyHist(), Sequencer::getOutstandReqHist(), GPUCoalescer::getOutstandReqHist(), Sequencer::getTypeLatencyHist(), GPUCoalescer::getTypeLatencyHist(), ArmISA::i, ArmISA::j, MipsISA::k, RubySystem::m_abstract_controls, m_address_profiler_ptr, m_all_instructions, m_FirstResponseToCompletionDelayHistCoalsr, m_FirstResponseToCompletionDelayHistSeqr, m_ForwardToFirstResponseDelayHistCoalsr, m_ForwardToFirstResponseDelayHistSeqr, m_hitLatencyHistSeqr, m_hitMachLatencyHistSeqr, m_hitTypeLatencyHistSeqr, m_hitTypeMachLatencyHistSeqr, m_IncompleteTimesSeqr, m_InitialToForwardDelayHistCoalsr, m_InitialToForwardDelayHistSeqr, m_inst_profiler_ptr, m_IssueToInitialDelayHistCoalsr, m_IssueToInitialDelayHistSeqr, m_latencyHistCoalsr, m_latencyHistSeqr, m_missLatencyHistCoalsr, m_missLatencyHistSeqr, m_missMachLatencyHistCoalsr, m_missMachLatencyHistSeqr, m_missTypeLatencyHistCoalsr, m_missTypeLatencyHistSeqr, m_missTypeMachLatencyHistCoalsr, m_missTypeMachLatencyHistSeqr, m_num_vnets, m_outstandReqHistCoalsr, m_outstandReqHistSeqr, m_ruby_system, m_typeLatencyHistCoalsr, and m_typeLatencyHistSeqr.

Referenced by RubySystem::collateStats().

◆ getAddressProfiler()

AddressProfiler* Profiler::getAddressProfiler ( )
inline

Definition at line 76 of file Profiler.hh.

References m_address_profiler_ptr.

◆ getAllInstructions()

bool Profiler::getAllInstructions ( ) const
inline

Definition at line 83 of file Profiler.hh.

References m_all_instructions.

Referenced by printSorted().

◆ getHotLines()

bool Profiler::getHotLines ( ) const
inline

Definition at line 82 of file Profiler.hh.

References m_hot_lines.

◆ getInstructionProfiler()

AddressProfiler* Profiler::getInstructionProfiler ( )
inline

Definition at line 77 of file Profiler.hh.

References m_inst_profiler_ptr.

◆ operator=()

Profiler& Profiler::operator= ( const Profiler obj)
private

◆ regStats()

void Profiler::regStats ( const std::string &  name)

◆ wakeup()

void Profiler::wakeup ( )

Member Data Documentation

◆ delayHistogram

Stats::Histogram Profiler::delayHistogram
private

Definition at line 93 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ delayVCHistogram

std::vector<Stats::Histogram *> Profiler::delayVCHistogram
private

Definition at line 94 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_address_profiler_ptr

AddressProfiler* Profiler::m_address_profiler_ptr
private

◆ m_all_instructions

const bool Profiler::m_all_instructions
private

Definition at line 143 of file Profiler.hh.

Referenced by collateStats(), getAllInstructions(), Profiler(), and regStats().

◆ m_FirstResponseToCompletionDelayHistCoalsr

std::vector<Stats::Histogram *> Profiler::m_FirstResponseToCompletionDelayHistCoalsr
private

Definition at line 139 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_FirstResponseToCompletionDelayHistSeqr

std::vector<Stats::Histogram *> Profiler::m_FirstResponseToCompletionDelayHistSeqr
private

Definition at line 134 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_ForwardToFirstResponseDelayHistCoalsr

std::vector<Stats::Histogram *> Profiler::m_ForwardToFirstResponseDelayHistCoalsr
private

Definition at line 138 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_ForwardToFirstResponseDelayHistSeqr

std::vector<Stats::Histogram *> Profiler::m_ForwardToFirstResponseDelayHistSeqr
private

Definition at line 133 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_hitLatencyHistSeqr

Stats::Histogram Profiler::m_hitLatencyHistSeqr
private

Histogram for holding latency profile of all requests that hit in the controller connected to this sequencer.

Definition at line 108 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_hitMachLatencyHistSeqr

std::vector<Stats::Histogram *> Profiler::m_hitMachLatencyHistSeqr
private

Histograms for profiling the latencies for requests that did not required external messages.

Definition at line 113 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_hitTypeLatencyHistSeqr

std::vector<Stats::Histogram *> Profiler::m_hitTypeLatencyHistSeqr
private

Definition at line 109 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_hitTypeMachLatencyHistSeqr

std::vector< std::vector<Stats::Histogram *> > Profiler::m_hitTypeMachLatencyHistSeqr
private

Definition at line 114 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_hot_lines

const bool Profiler::m_hot_lines
private

Definition at line 142 of file Profiler.hh.

Referenced by getHotLines(), and Profiler().

◆ m_IncompleteTimesSeqr

Stats::Scalar Profiler::m_IncompleteTimesSeqr[MachineType_NUM]
private

Definition at line 135 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_InitialToForwardDelayHistCoalsr

std::vector<Stats::Histogram *> Profiler::m_InitialToForwardDelayHistCoalsr
private

Definition at line 137 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_InitialToForwardDelayHistSeqr

std::vector<Stats::Histogram *> Profiler::m_InitialToForwardDelayHistSeqr
private

Definition at line 132 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_inst_profiler_ptr

AddressProfiler* Profiler::m_inst_profiler_ptr
private

Definition at line 91 of file Profiler.hh.

Referenced by collateStats(), getInstructionProfiler(), Profiler(), and regStats().

◆ m_IssueToInitialDelayHistCoalsr

std::vector<Stats::Histogram *> Profiler::m_IssueToInitialDelayHistCoalsr
private

Definition at line 136 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_IssueToInitialDelayHistSeqr

std::vector<Stats::Histogram *> Profiler::m_IssueToInitialDelayHistSeqr
private

Histograms for recording the breakdown of miss latency.

Definition at line 131 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_latencyHistCoalsr

Stats::Histogram Profiler::m_latencyHistCoalsr
private

Definition at line 102 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_latencyHistSeqr

Stats::Histogram Profiler::m_latencyHistSeqr
private

Histogram for holding latency profile of all requests.

Definition at line 101 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_missLatencyHistCoalsr

Stats::Histogram Profiler::m_missLatencyHistCoalsr
private

Definition at line 119 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_missLatencyHistSeqr

Stats::Histogram Profiler::m_missLatencyHistSeqr
private

Histogram for holding latency profile of all requests that miss in the controller connected to this sequencer.

Definition at line 118 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_missMachLatencyHistCoalsr

std::vector<Stats::Histogram *> Profiler::m_missMachLatencyHistCoalsr
private

Definition at line 127 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_missMachLatencyHistSeqr

std::vector<Stats::Histogram *> Profiler::m_missMachLatencyHistSeqr
private

Histograms for profiling the latencies for requests that required external messages.

Definition at line 125 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_missTypeLatencyHistCoalsr

std::vector<Stats::Histogram *> Profiler::m_missTypeLatencyHistCoalsr
private

Definition at line 121 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_missTypeLatencyHistSeqr

std::vector<Stats::Histogram *> Profiler::m_missTypeLatencyHistSeqr
private

Definition at line 120 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_missTypeMachLatencyHistCoalsr

std::vector< std::vector<Stats::Histogram *> > Profiler::m_missTypeMachLatencyHistCoalsr
private

Definition at line 128 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_missTypeMachLatencyHistSeqr

std::vector< std::vector<Stats::Histogram *> > Profiler::m_missTypeMachLatencyHistSeqr
private

Definition at line 126 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_num_vnets

const uint32_t Profiler::m_num_vnets
private

Definition at line 144 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_outstandReqHistCoalsr

Stats::Histogram Profiler::m_outstandReqHistCoalsr
private

Definition at line 98 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_outstandReqHistSeqr

Stats::Histogram Profiler::m_outstandReqHistSeqr
private

Histogram for number of outstanding requests per cycle.

Definition at line 97 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_ruby_system

RubySystem* Profiler::m_ruby_system

Definition at line 70 of file Profiler.hh.

Referenced by collateStats().

◆ m_typeLatencyHistCoalsr

std::vector<Stats::Histogram *> Profiler::m_typeLatencyHistCoalsr
private

Definition at line 104 of file Profiler.hh.

Referenced by collateStats(), and regStats().

◆ m_typeLatencyHistSeqr

std::vector<Stats::Histogram *> Profiler::m_typeLatencyHistSeqr
private

Definition at line 103 of file Profiler.hh.

Referenced by collateStats(), and regStats().


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

Generated on Wed Sep 30 2020 14:02:29 for gem5 by doxygen 1.8.17