summaryrefslogtreecommitdiff
path: root/src/mem/ruby/slicc_interface/AbstractController.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/ruby/slicc_interface/AbstractController.cc')
-rw-r--r--src/mem/ruby/slicc_interface/AbstractController.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mem/ruby/slicc_interface/AbstractController.cc b/src/mem/ruby/slicc_interface/AbstractController.cc
index adf411f82..bcd09796a 100644
--- a/src/mem/ruby/slicc_interface/AbstractController.cc
+++ b/src/mem/ruby/slicc_interface/AbstractController.cc
@@ -52,6 +52,14 @@ AbstractController::clearStats()
{
m_requestProfileMap.clear();
m_request_count = 0;
+
+ m_delayHistogram.clear();
+
+ uint32_t size = Network::getNumberOfVirtualNetworks();
+ m_delayVCHistogram.resize(size);
+ for (uint32_t i = 0; i < size; i++) {
+ m_delayVCHistogram[i].clear();
+ }
}
void
@@ -63,3 +71,11 @@ AbstractController::profileRequest(const std::string &request)
// default value which is 0
m_requestProfileMap[request]++;
}
+
+void
+AbstractController::profileMsgDelay(uint32_t virtualNetwork, Time delay)
+{
+ assert(virtualNetwork < m_delayVCHistogram.size());
+ m_delayHistogram.add(delay);
+ m_delayVCHistogram[virtualNetwork].add(delay);
+}