Eden Avivi has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/33400 )
Change subject: cpu: convert thread_state to new style stats
......................................................................
cpu: convert thread_state to new style stats
Change-Id: Ib8cc8633ca5fced63918a7a6d10e15126f7c7459
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33400
Reviewed-by: Jason Lowe-Power <[email protected]>
Maintainer: Jason Lowe-Power <[email protected]>
Tested-by: kokoro <[email protected]>
---
M src/cpu/minor/execute.cc
M src/cpu/o3/cpu.cc
M src/cpu/thread_state.cc
M src/cpu/thread_state.hh
4 files changed, 28 insertions(+), 12 deletions(-)
Approvals:
Jason Lowe-Power: Looks good to me, approved; Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/cpu/minor/execute.cc b/src/cpu/minor/execute.cc
index 3c94531..45ca002 100644
--- a/src/cpu/minor/execute.cc
+++ b/src/cpu/minor/execute.cc
@@ -865,7 +865,7 @@
if (!inst->staticInst->isMicroop() ||
inst->staticInst->isLastMicroop())
{
thread->numInst++;
- thread->numInsts++;
+ thread->threadStats.numInsts++;
cpu.stats.numInsts++;
cpu.system->totalNumInsts++;
@@ -873,7 +873,7 @@
thread->comInstEventQueue.serviceEvents(thread->numInst);
}
thread->numOp++;
- thread->numOps++;
+ thread->threadStats.numOps++;
cpu.stats.numOps++;
cpu.stats.committedInstType[inst->id.threadId]
[inst->staticInst->opClass()]++;
diff --git a/src/cpu/o3/cpu.cc b/src/cpu/o3/cpu.cc
index a525ea4..562a332 100644
--- a/src/cpu/o3/cpu.cc
+++ b/src/cpu/o3/cpu.cc
@@ -1512,7 +1512,7 @@
// Keep an instruction count.
if (!inst->isMicroop() || inst->isLastMicroop()) {
thread[tid]->numInst++;
- thread[tid]->numInsts++;
+ thread[tid]->threadStats.numInsts++;
committedInsts[tid]++;
system->totalNumInsts++;
@@ -1520,7 +1520,7 @@
thread[tid]->comInstEventQueue.serviceEvents(thread[tid]->numInst);
}
thread[tid]->numOp++;
- thread[tid]->numOps++;
+ thread[tid]->threadStats.numOps++;
committedOps[tid]++;
probeInstCommit(inst->staticInst, inst->instAddr());
diff --git a/src/cpu/thread_state.cc b/src/cpu/thread_state.cc
index f681abc..a142f57 100644
--- a/src/cpu/thread_state.cc
+++ b/src/cpu/thread_state.cc
@@ -39,7 +39,8 @@
#include "sim/system.hh"
ThreadState::ThreadState(BaseCPU *cpu, ThreadID _tid, Process *_process)
- : numInst(0), numOp(0), numLoad(0), startNumLoad(0),
+ : numInst(0), numOp(0), threadStats(cpu, this),
+ numLoad(0), startNumLoad(0),
_status(ThreadContext::Halted), baseCpu(cpu),
_contextId(0), _threadId(_tid), lastActivate(0), lastSuspend(0),
process(_process), physProxy(NULL), virtProxy(NULL),
@@ -116,3 +117,13 @@
assert(virtProxy != NULL);
return *virtProxy;
}
+
+ThreadState::ThreadStateStats::ThreadStateStats(BaseCPU *cpu,
+ ThreadState *thread)
+ : Stats::Group(cpu, csprintf("thread%i",
thread->threadId()).c_str()),
+ ADD_STAT(numInsts, "Number of Instructions committed"),
+ ADD_STAT(numOps, "Number of Ops committed"),
+ ADD_STAT(numMemRefs, "Number of Memory References")
+{
+
+}
diff --git a/src/cpu/thread_state.hh b/src/cpu/thread_state.hh
index 1cc92a1..3ac473d 100644
--- a/src/cpu/thread_state.hh
+++ b/src/cpu/thread_state.hh
@@ -106,14 +106,19 @@
/** Number of instructions committed. */
Counter numInst;
- /** Stat for number instructions committed. */
- Stats::Scalar numInsts;
- /** Number of ops (including micro ops) committed. */
+ /** Number of ops (including micro ops) committed. */
Counter numOp;
- /** Stat for number ops (including micro ops) committed. */
- Stats::Scalar numOps;
- /** Stat for number of memory references. */
- Stats::Scalar numMemRefs;
+ // Defining the stat group
+ struct ThreadStateStats : public Stats::Group
+ {
+ ThreadStateStats(BaseCPU *cpu, ThreadState *thread);
+ /** Stat for number instructions committed. */
+ Stats::Scalar numInsts;
+ /** Stat for number ops (including micro ops) committed. */
+ Stats::Scalar numOps;
+ /** Stat for number of memory references. */
+ Stats::Scalar numMemRefs;
+ } threadStats;
/** Number of simulated loads, used for tracking events based on
* the number of loads committed.
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/33400
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: Ib8cc8633ca5fced63918a7a6d10e15126f7c7459
Gerrit-Change-Number: 33400
Gerrit-PatchSet: 13
Gerrit-Owner: Eden Avivi <[email protected]>
Gerrit-Reviewer: Bobby R. Bruce <[email protected]>
Gerrit-Reviewer: Eden Avivi <[email protected]>
Gerrit-Reviewer: Jason Lowe-Power <[email protected]>
Gerrit-Reviewer: kokoro <[email protected]>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s