diff options
author | Nikos Nikoleris <nikos.nikoleris@gmail.com> | 2015-04-03 11:42:10 -0500 |
---|---|---|
committer | Nikos Nikoleris <nikos.nikoleris@gmail.com> | 2015-04-03 11:42:10 -0500 |
commit | 305e29b98ef369bcf5574a0a462f43c0bbc7ba5b (patch) | |
tree | e2699c1127421c8b8c86b7ebd37706919daa881e /src/cpu/minor | |
parent | 333988a73e06cb4067f113b7043ab68dd0e86c9d (diff) | |
download | gem5-305e29b98ef369bcf5574a0a462f43c0bbc7ba5b.tar.xz |
cpu: fix system total instructions accounting
The totalInstructions counter is only incremented when the whole instruction is
commited and not on every microop. It was incorrectly reset in atomic and
timing cpus.
Committed by: Nilay Vaish <nilay@cs.wisc.edu>"
Diffstat (limited to 'src/cpu/minor')
-rw-r--r-- | src/cpu/minor/execute.cc | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/cpu/minor/execute.cc b/src/cpu/minor/execute.cc index f7b773377..706fdf010 100644 --- a/src/cpu/minor/execute.cc +++ b/src/cpu/minor/execute.cc @@ -840,15 +840,15 @@ Execute::doInstCommitAccounting(MinorDynInstPtr inst) thread->numInst++; thread->numInsts++; cpu.stats.numInsts++; + cpu.system->totalNumInsts++; + + /* Act on events related to instruction counts */ + cpu.comInstEventQueue[inst->id.threadId]->serviceEvents(thread->numInst); + cpu.system->instEventQueue.serviceEvents(cpu.system->totalNumInsts); } thread->numOp++; thread->numOps++; cpu.stats.numOps++; - cpu.system->totalNumInsts++; - - /* Act on events related to instruction counts */ - cpu.comInstEventQueue[inst->id.threadId]->serviceEvents(thread->numInst); - cpu.system->instEventQueue.serviceEvents(cpu.system->totalNumInsts); /* Set the CP SeqNum to the numOps commit number */ if (inst->traceData) |