diff options
author | Stephan Diestelhorst <stephan.diestelhorst@arm.com> | 2017-04-06 14:53:41 +0100 |
---|---|---|
committer | Andreas Sandberg <andreas.sandberg@arm.com> | 2017-04-11 23:57:26 +0000 |
commit | f7b3df49c1f5a45b9edc0d320d8ed09afc1ef21c (patch) | |
tree | cc2cb58e85a34141d868b50d2fe9117da84d5282 | |
parent | 9833153bd2b84cfbe46d0031a3e4eea27c1a4a95 (diff) | |
download | gem5-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.cc | 12 |
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; |