Marjan Fariborz has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/36315 )

Change subject: mem-ruby,stats: Update stats for SimpleNetwork
......................................................................

mem-ruby,stats: Update stats for SimpleNetwork

Updating the statistics for SimpleNetwork to new style stats.

Change-Id: I06b03edccf22dbd85f70ad30c03e0c76580fdbf9
---
M src/mem/ruby/network/simple/SimpleNetwork.cc
M src/mem/ruby/network/simple/SimpleNetwork.hh
2 files changed, 36 insertions(+), 25 deletions(-)



diff --git a/src/mem/ruby/network/simple/SimpleNetwork.cc b/src/mem/ruby/network/simple/SimpleNetwork.cc
index 86d0432..dcde5f6 100644
--- a/src/mem/ruby/network/simple/SimpleNetwork.cc
+++ b/src/mem/ruby/network/simple/SimpleNetwork.cc
@@ -54,10 +54,10 @@

 using namespace std;

-SimpleNetwork::SimpleNetwork(const Params &p)
-    : Network(p), m_buffer_size(p.buffer_size),
-      m_endpoint_bandwidth(p.endpoint_bandwidth),
-      m_adaptive_routing(p.adaptive_routing)
+SimpleNetwork::SimpleNetwork(const Params *p)
+    : Network(p), m_buffer_size(p->buffer_size),
+      m_endpoint_bandwidth(p->endpoint_bandwidth),
+      m_adaptive_routing(p->adaptive_routing), simpNetStats(this)
 {
     // record the routers
     for (vector<BasicRouter*>::const_iterator i = p.routers.begin();
@@ -136,32 +136,40 @@
                                 simple_link->m_latency,
                                 simple_link->m_bw_multiplier);
 }
+SimpleNetwork::SimpleNetworkStats::SimpleNetworkStats(
+    SimpleNetwork *parent) : Stats::Group(parent)
+{

+    for (MessageSizeType type = MessageSizeType_FIRST;
+         type < MessageSizeType_NUM; ++type) {
+        msg_counts[(unsigned int) type]
+            .name(parent->name() + ".msg_count." +
+                MessageSizeType_to_string(type))
+            .flags(Stats::nozero);
+
+        msg_bytes[(unsigned int) type]
+            .name(parent->name() + ".msg_byte." +
+                MessageSizeType_to_string(type))
+            .flags(Stats::nozero);
+            ;
+        }
+}
 void
 SimpleNetwork::regStats()
 {
     Network::regStats();
-
+    using namespace Stats;
     for (MessageSizeType type = MessageSizeType_FIRST;
-         type < MessageSizeType_NUM; ++type) {
-        m_msg_counts[(unsigned int) type]
-            .name(name() + ".msg_count." + MessageSizeType_to_string(type))
-            .flags(Stats::nozero)
-            ;
-        m_msg_bytes[(unsigned int) type]
-            .name(name() + ".msg_byte." + MessageSizeType_to_string(type))
-            .flags(Stats::nozero)
-            ;
+        type < MessageSizeType_NUM; ++type) {

-        // Now state what the formula is.
+         // Now state what the formula is.
         for (int i = 0; i < m_switches.size(); i++) {
-            m_msg_counts[(unsigned int) type] +=
+            simpNetStats.msg_counts[(unsigned int) type] +=
                 sum(m_switches[i]->getMsgCount(type));
         }
-
-        m_msg_bytes[(unsigned int) type] =
-            m_msg_counts[(unsigned int) type] * Stats::constant(
-                    Network::MessageSizeType_to_int(type));
+        simpNetStats.msg_bytes[(unsigned int) type] =
+            simpNetStats.msg_counts[(unsigned int) type] *
+            Stats::constant(Network::MessageSizeType_to_int(type));
     }
 }

diff --git a/src/mem/ruby/network/simple/SimpleNetwork.hh b/src/mem/ruby/network/simple/SimpleNetwork.hh
index aee5ef5..e0a1a0a 100644
--- a/src/mem/ruby/network/simple/SimpleNetwork.hh
+++ b/src/mem/ruby/network/simple/SimpleNetwork.hh
@@ -54,7 +54,7 @@
     bool getAdaptiveRouting() {return m_adaptive_routing; }

     void collateStats();
-    void regStats();
+    void regStats() override;

     bool isVNetOrdered(int vnet) const { return m_ordered[vnet]; }

@@ -89,10 +89,13 @@
     const int m_buffer_size;
     const int m_endpoint_bandwidth;
     const bool m_adaptive_routing;
-
-    //Statistical variables
-    Stats::Formula m_msg_counts[MessageSizeType_NUM];
-    Stats::Formula m_msg_bytes[MessageSizeType_NUM];
+    struct SimpleNetworkStats : public Stats::Group
+    {
+      SimpleNetworkStats(SimpleNetwork *parent);
+      //Statistical variables
+      Stats::Formula msg_counts[MessageSizeType_NUM];
+      Stats::Formula msg_bytes[MessageSizeType_NUM];
+    } simpNetStats;
 };

 inline std::ostream&

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/36315
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I06b03edccf22dbd85f70ad30c03e0c76580fdbf9
Gerrit-Change-Number: 36315
Gerrit-PatchSet: 1
Gerrit-Owner: Marjan Fariborz <mfarib...@ucdavis.edu>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to