diff options
author | Nilay Vaish <nilay@cs.wisc.edu> | 2014-01-10 16:19:47 -0600 |
---|---|---|
committer | Nilay Vaish <nilay@cs.wisc.edu> | 2014-01-10 16:19:47 -0600 |
commit | 407f37e15f19a2da350a94272ac7739891e935f4 (patch) | |
tree | db413665cc1d2fc411b960339e1653cce0e182e8 /src/mem/ruby/slicc_interface/AbstractController.cc | |
parent | cfe912a5127b51273d7e3e78c15095ac832f20bd (diff) | |
download | gem5-407f37e15f19a2da350a94272ac7739891e935f4.tar.xz |
ruby: move all statistics to stats.txt, eliminate ruby.stats
Diffstat (limited to 'src/mem/ruby/slicc_interface/AbstractController.cc')
-rw-r--r-- | src/mem/ruby/slicc_interface/AbstractController.cc | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/src/mem/ruby/slicc_interface/AbstractController.cc b/src/mem/ruby/slicc_interface/AbstractController.cc index e46158ca0..0f5a70a6e 100644 --- a/src/mem/ruby/slicc_interface/AbstractController.cc +++ b/src/mem/ruby/slicc_interface/AbstractController.cc @@ -31,8 +31,7 @@ #include "mem/ruby/system/System.hh" AbstractController::AbstractController(const Params *p) - : ClockedObject(p), Consumer(this), m_fully_busy_cycles(0), - m_request_count(0) + : ClockedObject(p), Consumer(this) { m_version = p->version; m_clusterID = p->cluster_id; @@ -54,44 +53,39 @@ void AbstractController::init() { params()->ruby_system->registerAbstractController(this); + m_delayHistogram.init(10); + uint32_t size = Network::getNumberOfVirtualNetworks(); + for (uint32_t i = 0; i < size; i++) { + m_delayVCHistogram.push_back(new Stats::Histogram()); + m_delayVCHistogram[i]->init(10); + } } void -AbstractController::clearStats() +AbstractController::resetStats() { - m_requestProfileMap.clear(); - m_request_count = 0; - - m_delayHistogram.clear(); - + m_delayHistogram.reset(); uint32_t size = Network::getNumberOfVirtualNetworks(); - m_delayVCHistogram.resize(size); for (uint32_t i = 0; i < size; i++) { - m_delayVCHistogram[i].clear(); - } - - Sequencer *seq = getSequencer(); - if (seq != NULL) { - seq->clearStats(); + m_delayVCHistogram[i]->reset(); } } void -AbstractController::profileRequest(const std::string &request) +AbstractController::regStats() { - m_request_count++; - - // if it doesn't exist, conveniently, it will be created with the - // default value which is 0 - m_requestProfileMap[request]++; + m_fully_busy_cycles + .name(name() + ".fully_busy_cycles") + .desc("cycles for which number of transistions == max transitions") + .flags(Stats::nozero); } void AbstractController::profileMsgDelay(uint32_t virtualNetwork, Cycles delay) { assert(virtualNetwork < m_delayVCHistogram.size()); - m_delayHistogram.add(delay); - m_delayVCHistogram[virtualNetwork].add(delay); + m_delayHistogram.sample(delay); + m_delayVCHistogram[virtualNetwork]->sample(delay); } void |