Ayaz Akram has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/37397 )
Change subject: stats: Update Ticked class stats
......................................................................
stats: Update Ticked class stats
This change updates the Ticked class to
use new style stats.
Change-Id: Iaf244e436cadb51f3684d4dd4a18012bc46fd9ee
---
M src/cpu/minor/cpu.cc
M src/cpu/minor/ticked.cc
M src/cpu/minor/ticked.hh
3 files changed, 14 insertions(+), 26 deletions(-)
diff --git a/src/cpu/minor/cpu.cc b/src/cpu/minor/cpu.cc
old mode 100644
new mode 100755
index 18a3fee..8319a69
--- a/src/cpu/minor/cpu.cc
+++ b/src/cpu/minor/cpu.cc
@@ -114,7 +114,6 @@
{
BaseCPU::regStats();
stats.regStats(name(), *this);
- pipeline->regStats();
}
void
diff --git a/src/cpu/minor/ticked.cc b/src/cpu/minor/ticked.cc
old mode 100644
new mode 100755
index 0448a16..c09a9b4
--- a/src/cpu/minor/ticked.cc
+++ b/src/cpu/minor/ticked.cc
@@ -37,7 +37,6 @@
#include "cpu/minor/ticked.hh"
-#include "params/Ticked.hh"
#include "sim/clocked_object.hh"
Ticked::Ticked(ClockedObject &object_,
@@ -47,15 +46,14 @@
event([this]{ processClockEvent(); }, object_.name(), false, priority),
running(false),
lastStopped(0),
- /* Allocate numCycles if an external stat wasn't passed in */
- numCyclesLocal((imported_num_cycles ? NULL : new Stats::Scalar)),
- numCycles((imported_num_cycles ? *imported_num_cycles :
- *numCyclesLocal))
+ // Pass the external cycles stat to numCycles.
+ numCycles(*imported_num_cycles),
+ stats(&object_, numCycles)
{ }
void
Ticked::processClockEvent() {
- ++tickCycles;
+ ++stats.tickCycles;
++numCycles;
countCycles(Cycles(1));
evaluate();
@@ -63,23 +61,14 @@
object.schedule(event, object.clockEdge(Cycles(1)));
}
-void
-Ticked::regStats()
+Ticked::TickedStats::TickedStats(ClockedObject *parent,
+ Stats::Scalar &numCycles) : Stats::Group(parent),
+ ADD_STAT(tickCycles,
+ "Number of cycles that the object actually ticked."),
+ ADD_STAT(idleCycles, "Total number of cycles that the object"
+ "has spent stopped.", numCycles - tickCycles)
{
- if (numCyclesLocal) {
- numCycles
- .name(object.name() + ".totalTickCycles")
- .desc("Number of cycles that the object ticked or was
stopped");
- }
- tickCycles
- .name(object.name() + ".tickCycles")
- .desc("Number of cycles that the object actually ticked");
-
- idleCycles
- .name(object.name() + ".idleCycles")
- .desc("Total number of cycles that the object has spent stopped");
- idleCycles = numCycles - tickCycles;
}
void
diff --git a/src/cpu/minor/ticked.hh b/src/cpu/minor/ticked.hh
old mode 100644
new mode 100755
index b89befe..bc4a231
--- a/src/cpu/minor/ticked.hh
+++ b/src/cpu/minor/ticked.hh
@@ -78,11 +78,15 @@
/** Total number of cycles either ticked or spend stopped */
Stats::Scalar &numCycles;
+ struct TickedStats : public Stats::Group {
+ TickedStats(ClockedObject *parent, Stats::Scalar &numCycles);
+
/** Number of cycles ticked */
Stats::Scalar tickCycles;
/** Number of cycles stopped */
Stats::Formula idleCycles;
+ } stats;
public:
Ticked(ClockedObject &object_,
@@ -91,10 +95,6 @@
virtual ~Ticked() { }
- /** Register {num,ticks}Cycles if necessary. If numCycles is
- * imported, be sure to register it *before* calling this regStats */
- void regStats();
-
/** Start ticking */
void
start()
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/37397
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: Iaf244e436cadb51f3684d4dd4a18012bc46fd9ee
Gerrit-Change-Number: 37397
Gerrit-PatchSet: 1
Gerrit-Owner: Ayaz Akram <yazak...@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