gem5 v24.0.0.0
|
#include <AddressProfiler.hh>
Public Types | |
typedef std::unordered_map< Addr, AccessTraceForAddress > | AddressMap |
Public Member Functions | |
AddressProfiler (int num_of_sequencers, Profiler *profiler) | |
~AddressProfiler () | |
void | printStats (std::ostream &out) const |
void | clearStats () |
void | addTraceSample (Addr data_addr, Addr pc_addr, RubyRequestType type, RubyAccessMode access_mode, NodeID id, bool sharing_miss) |
void | profileRetry (Addr data_addr, AccessType type, int count) |
void | profileGetX (Addr datablock, Addr PC, const Set &owner, const Set &sharers, NodeID requestor) |
void | profileGetS (Addr datablock, Addr PC, const Set &owner, const Set &sharers, NodeID requestor) |
void | print (std::ostream &out) const |
void | setHotLines (bool hot_lines) |
void | setAllInstructions (bool all_instructions) |
void | regStats (const std::string &name) |
void | collateStats () |
Private Member Functions | |
AddressProfiler (const AddressProfiler &obj) | |
AddressProfiler & | operator= (const AddressProfiler &obj) |
Definition at line 50 of file AddressProfiler.hh.
typedef std::unordered_map<Addr, AccessTraceForAddress> gem5::ruby::AddressProfiler::AddressMap |
Definition at line 53 of file AddressProfiler.hh.
gem5::ruby::AddressProfiler::AddressProfiler | ( | int | num_of_sequencers, |
Profiler * | profiler ) |
Definition at line 157 of file AddressProfiler.cc.
References clearStats(), and m_num_of_sequencers.
gem5::ruby::AddressProfiler::~AddressProfiler | ( | ) |
Definition at line 164 of file AddressProfiler.cc.
|
private |
void gem5::ruby::AddressProfiler::addTraceSample | ( | Addr | data_addr, |
Addr | pc_addr, | ||
RubyRequestType | type, | ||
RubyAccessMode | access_mode, | ||
NodeID | id, | ||
bool | sharing_miss ) |
Definition at line 299 of file AddressProfiler.cc.
References gem5::ruby::lookupTraceForAddress(), m_all_instructions, m_dataAccessTrace, m_macroBlockAccessTrace, m_programCounterAccessTrace, m_sharing_miss_counter, gem5::ruby::makeLineAddress(), gem5::mbits(), and gem5::X86ISA::type.
Referenced by profileGetS(), and profileGetX().
void gem5::ruby::AddressProfiler::clearStats | ( | ) |
Definition at line 248 of file AddressProfiler.cc.
References gem5::ruby::Histogram::clear(), m_dataAccessTrace, m_gets_sharing_histogram, m_getx_sharing_histogram, m_macroBlockAccessTrace, m_programCounterAccessTrace, m_retryProfileHisto, m_retryProfileHistoRead, m_retryProfileHistoWrite, m_retryProfileMap, and m_sharing_miss_counter.
Referenced by AddressProfiler().
|
inline |
Definition at line 77 of file AddressProfiler.hh.
Referenced by gem5::ruby::Profiler::collateStats().
|
private |
void gem5::ruby::AddressProfiler::print | ( | std::ostream & | out | ) | const |
Referenced by gem5::ruby::operator<<().
void gem5::ruby::AddressProfiler::printStats | ( | std::ostream & | out | ) | const |
Definition at line 181 of file AddressProfiler.cc.
References m_all_instructions, m_dataAccessTrace, m_gets_sharing_histogram, m_getx_sharing_histogram, m_hot_lines, m_macroBlockAccessTrace, m_num_of_sequencers, m_profiler, m_programCounterAccessTrace, m_retryProfileHisto, m_retryProfileHistoRead, m_retryProfileHistoWrite, m_retryProfileMap, m_sharing_miss_counter, gem5::ruby::Histogram::printPercent(), gem5::ruby::printSorted(), and gem5::ruby::Histogram::size().
void gem5::ruby::AddressProfiler::profileGetS | ( | Addr | datablock, |
Addr | PC, | ||
const Set & | owner, | ||
const Set & | sharers, | ||
NodeID | requestor ) |
Definition at line 282 of file AddressProfiler.cc.
References gem5::ruby::Histogram::add(), gem5::ruby::Set::addSet(), addTraceSample(), gem5::ruby::Set::count(), m_gets_sharing_histogram, and gem5::ruby::Set::remove().
void gem5::ruby::AddressProfiler::profileGetX | ( | Addr | datablock, |
Addr | PC, | ||
const Set & | owner, | ||
const Set & | sharers, | ||
NodeID | requestor ) |
Definition at line 264 of file AddressProfiler.cc.
References gem5::ruby::Histogram::add(), gem5::ruby::Set::addSet(), addTraceSample(), gem5::ruby::Set::count(), m_getx_sharing_histogram, and gem5::ruby::Set::remove().
void gem5::ruby::AddressProfiler::profileRetry | ( | Addr | data_addr, |
AccessType | type, | ||
int | count ) |
Definition at line 336 of file AddressProfiler.cc.
References gem5::ruby::Histogram::add(), gem5::ruby::AccessTraceForAddress::addSample(), gem5::X86ISA::count, gem5::ruby::lookupTraceForAddress(), m_retryProfileHisto, m_retryProfileHistoRead, m_retryProfileHistoWrite, m_retryProfileMap, and gem5::X86ISA::type.
|
inline |
Definition at line 76 of file AddressProfiler.hh.
void gem5::ruby::AddressProfiler::setAllInstructions | ( | bool | all_instructions | ) |
Definition at line 175 of file AddressProfiler.cc.
References m_all_instructions.
Referenced by gem5::ruby::Profiler::Profiler().
void gem5::ruby::AddressProfiler::setHotLines | ( | bool | hot_lines | ) |
Definition at line 169 of file AddressProfiler.cc.
References m_hot_lines.
Referenced by gem5::ruby::Profiler::Profiler().
|
private |
Definition at line 100 of file AddressProfiler.hh.
Referenced by addTraceSample(), printStats(), and setAllInstructions().
|
private |
Definition at line 86 of file AddressProfiler.hh.
Referenced by addTraceSample(), clearStats(), and printStats().
|
private |
Definition at line 94 of file AddressProfiler.hh.
Referenced by clearStats(), printStats(), and profileGetS().
|
private |
Definition at line 93 of file AddressProfiler.hh.
Referenced by clearStats(), printStats(), and profileGetX().
|
private |
Definition at line 99 of file AddressProfiler.hh.
Referenced by printStats(), and setHotLines().
|
private |
Definition at line 87 of file AddressProfiler.hh.
Referenced by addTraceSample(), clearStats(), and printStats().
|
private |
Definition at line 102 of file AddressProfiler.hh.
Referenced by AddressProfiler(), and printStats().
|
private |
Definition at line 96 of file AddressProfiler.hh.
Referenced by printStats().
|
private |
Definition at line 88 of file AddressProfiler.hh.
Referenced by addTraceSample(), clearStats(), and printStats().
|
private |
Definition at line 90 of file AddressProfiler.hh.
Referenced by clearStats(), printStats(), and profileRetry().
|
private |
Definition at line 92 of file AddressProfiler.hh.
Referenced by clearStats(), printStats(), and profileRetry().
|
private |
Definition at line 91 of file AddressProfiler.hh.
Referenced by clearStats(), printStats(), and profileRetry().
|
private |
Definition at line 89 of file AddressProfiler.hh.
Referenced by clearStats(), printStats(), and profileRetry().
|
private |
Definition at line 84 of file AddressProfiler.hh.
Referenced by addTraceSample(), clearStats(), and printStats().