summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephan Diestelhorst <stephan.diestelhorst@arm.com>2017-04-06 14:53:41 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2017-04-11 23:57:26 +0000
commitf7b3df49c1f5a45b9edc0d320d8ed09afc1ef21c (patch)
treecc2cb58e85a34141d868b50d2fe9117da84d5282
parent9833153bd2b84cfbe46d0031a3e4eea27c1a4a95 (diff)
downloadgem5-f7b3df49c1f5a45b9edc0d320d8ed09afc1ef21c.tar.xz
power: Allow global stats in power equations
Allow global stats such as sim_seconds in power equations to make it possible to convert from event stats to rate stats. Change-Id: I429abe0ffadc0dbd162eb39e0897143be472ef65 Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/2720 Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
-rw-r--r--src/sim/power/mathexpr_powermodel.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/sim/power/mathexpr_powermodel.cc b/src/sim/power/mathexpr_powermodel.cc
index a77e14a08..ab4872007 100644
--- a/src/sim/power/mathexpr_powermodel.cc
+++ b/src/sim/power/mathexpr_powermodel.cc
@@ -39,6 +39,8 @@
#include "sim/power/mathexpr_powermodel.hh"
+#include <string>
+
#include "base/statistics.hh"
#include "params/MathExprPowerModel.hh"
#include "sim/mathexpr.hh"
@@ -62,9 +64,15 @@ MathExprPowerModel::startup()
{
// Create a map with stats and pointers for quick access
// Has to be done here, since we need access to the statsList
- for (auto & i: Stats::statsList())
- if (i->name.find(basename) == 0)
+ for (auto & i: Stats::statsList()) {
+ if (i->name.find(basename) == 0) {
+ // Add stats for this sim object and its child objects
stats_map[i->name.substr(basename.size())] = i;
+ } else if (i->name.find(".") == std::string::npos) {
+ // Add global stats (sim_seconds, for example)
+ stats_map[i->name] = i;
+ }
+ }
tryEval(st_expr);
const bool st_failed = failed;