Javier Cano-Cano has uploaded this change for review. ( https://gem5-review.googlesource.com/3700

Change subject: mem-garnet: Fix garnet stats
......................................................................

mem-garnet: Fix garnet stats

This patch fix some statistics that in presence of a resetStats
instruction were not  reseted. This bug makes impossible to obtain
reliable network statistics when the simulation doesn't start from tick
zero.

Change-Id: Ibec45f08d95bf0a533d94b70ec960719206ae945
---
M src/mem/ruby/network/garnet2.0/CrossbarSwitch.cc
M src/mem/ruby/network/garnet2.0/CrossbarSwitch.hh
M src/mem/ruby/network/garnet2.0/NetworkLink.cc
M src/mem/ruby/network/garnet2.0/NetworkLink.hh
M src/mem/ruby/network/garnet2.0/Router.cc
M src/mem/ruby/network/garnet2.0/SwitchAllocator.cc
M src/mem/ruby/network/garnet2.0/SwitchAllocator.hh
7 files changed, 30 insertions(+), 0 deletions(-)



diff --git a/src/mem/ruby/network/garnet2.0/CrossbarSwitch.cc b/src/mem/ruby/network/garnet2.0/CrossbarSwitch.cc
index 340f56d..fbaf25b 100644
--- a/src/mem/ruby/network/garnet2.0/CrossbarSwitch.cc
+++ b/src/mem/ruby/network/garnet2.0/CrossbarSwitch.cc
@@ -110,3 +110,9 @@

    return num_functional_writes;
 }
+
+void
+CrossbarSwitch::resetStats()
+{
+    m_crossbar_activity = 0;
+}
\ No newline at end of file
diff --git a/src/mem/ruby/network/garnet2.0/CrossbarSwitch.hh b/src/mem/ruby/network/garnet2.0/CrossbarSwitch.hh
index 7aaeabf..bca3a92 100644
--- a/src/mem/ruby/network/garnet2.0/CrossbarSwitch.hh
+++ b/src/mem/ruby/network/garnet2.0/CrossbarSwitch.hh
@@ -59,6 +59,7 @@
     inline double get_crossbar_activity() { return m_crossbar_activity; }

     uint32_t functionalWrite(Packet *pkt);
+    void resetStats();

   private:
     int m_num_vcs;
diff --git a/src/mem/ruby/network/garnet2.0/NetworkLink.cc b/src/mem/ruby/network/garnet2.0/NetworkLink.cc
index 6010071..e718fb8 100644
--- a/src/mem/ruby/network/garnet2.0/NetworkLink.cc
+++ b/src/mem/ruby/network/garnet2.0/NetworkLink.cc
@@ -75,6 +75,16 @@
     }
 }

+void
+NetworkLink::resetStats()
+{
+    for (int i = 0; i < m_vc_load.size(); i++) {
+        m_vc_load[i] = 0;
+    }
+
+    m_link_utilized = 0;
+}
+
 NetworkLink *
 NetworkLinkParams::create()
 {
diff --git a/src/mem/ruby/network/garnet2.0/NetworkLink.hh b/src/mem/ruby/network/garnet2.0/NetworkLink.hh
index cb69b39..10399ec 100644
--- a/src/mem/ruby/network/garnet2.0/NetworkLink.hh
+++ b/src/mem/ruby/network/garnet2.0/NetworkLink.hh
@@ -70,6 +70,7 @@
     inline flit* consumeLink()    { return linkBuffer->getTopFlit(); }

     uint32_t functionalWrite(Packet *);
+    void resetStats();

   private:
     const int m_id;
diff --git a/src/mem/ruby/network/garnet2.0/Router.cc b/src/mem/ruby/network/garnet2.0/Router.cc
index 65a7300..7266f99 100644
--- a/src/mem/ruby/network/garnet2.0/Router.cc
+++ b/src/mem/ruby/network/garnet2.0/Router.cc
@@ -241,6 +241,9 @@
             m_input_unit[i]->resetStats();
         }
     }
+
+    m_switch->resetStats();
+    m_sw_alloc->resetStats();
 }

 void
diff --git a/src/mem/ruby/network/garnet2.0/SwitchAllocator.cc b/src/mem/ruby/network/garnet2.0/SwitchAllocator.cc
index 4619b0b..836f071 100644
--- a/src/mem/ruby/network/garnet2.0/SwitchAllocator.cc
+++ b/src/mem/ruby/network/garnet2.0/SwitchAllocator.cc
@@ -387,3 +387,10 @@
         }
     }
 }
+
+void
+SwitchAllocator::resetStats()
+{
+    m_input_arbiter_activity = 0;
+    m_output_arbiter_activity = 0;
+}
\ No newline at end of file
diff --git a/src/mem/ruby/network/garnet2.0/SwitchAllocator.hh b/src/mem/ruby/network/garnet2.0/SwitchAllocator.hh
index 162264e..7515b73 100644
--- a/src/mem/ruby/network/garnet2.0/SwitchAllocator.hh
+++ b/src/mem/ruby/network/garnet2.0/SwitchAllocator.hh
@@ -70,6 +70,8 @@
         return m_output_arbiter_activity;
     }

+    void resetStats();
+
   private:
     int m_num_inports, m_num_outports;
     int m_num_vcs, m_vc_per_vnet;

--
To view, visit https://gem5-review.googlesource.com/3700
To unsubscribe, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibec45f08d95bf0a533d94b70ec960719206ae945
Gerrit-Change-Number: 3700
Gerrit-PatchSet: 1
Gerrit-Owner: Javier Cano-Cano <[email protected]>
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to