diff options
author | Nathan Binkert <nate@binkert.org> | 2009-01-21 14:56:18 -0800 |
---|---|---|
committer | Nathan Binkert <nate@binkert.org> | 2009-01-21 14:56:18 -0800 |
commit | 10fc45da27f0c18c1a8b90af3d76127fc4467391 (patch) | |
tree | 47cc264e2316fe21adeb043a77cef792a43993d8 /src | |
parent | dbac448b088eea12d8b20400c7a770e57e28d771 (diff) | |
download | gem5-10fc45da27f0c18c1a8b90af3d76127fc4467391.tar.xz |
o3cpu: give a name to the activity recorder for better tracing
Diffstat (limited to 'src')
-rw-r--r-- | src/cpu/activity.cc | 13 | ||||
-rw-r--r-- | src/cpu/activity.hh | 10 | ||||
-rw-r--r-- | src/cpu/o3/cpu.cc | 2 |
3 files changed, 17 insertions, 8 deletions
diff --git a/src/cpu/activity.cc b/src/cpu/activity.cc index 15e0556ad..a2a34edf9 100644 --- a/src/cpu/activity.cc +++ b/src/cpu/activity.cc @@ -28,15 +28,18 @@ * Authors: Kevin Lim */ -#include <cstring> +#include <string> #include "base/timebuf.hh" #include "cpu/activity.hh" -ActivityRecorder::ActivityRecorder(int num_stages, int longest_latency, - int activity) - : activityBuffer(longest_latency, 0), longestLatency(longest_latency), - activityCount(activity), numStages(num_stages) +using namespace std; + +ActivityRecorder::ActivityRecorder(const string &name, int num_stages, + int longest_latency, int activity) + : _name(name), activityBuffer(longest_latency, 0), + longestLatency(longest_latency), activityCount(activity), + numStages(num_stages) { stageActive = new bool[numStages]; std::memset(stageActive, 0, numStages); diff --git a/src/cpu/activity.hh b/src/cpu/activity.hh index e99927339..d75ff150e 100644 --- a/src/cpu/activity.hh +++ b/src/cpu/activity.hh @@ -49,9 +49,11 @@ * idle. If count is zero, then the CPU can safely idle as it has no * more outstanding work to do. */ -class ActivityRecorder { +class ActivityRecorder +{ public: - ActivityRecorder(int num_stages, int longest_latency, int count); + ActivityRecorder(const std::string &name, int num_stages, + int longest_latency, int count); /** Records that there is activity this cycle. */ void activity(); @@ -92,6 +94,10 @@ class ActivityRecorder { void validate(); private: + // provide name() for DPRINTF. + std::string _name; + const std::string &name() { return _name; } + /** Time buffer that tracks if any cycles has active communication * in them. It should be as long as the longest communication * latency in the system. Each time any time buffer is written, diff --git a/src/cpu/o3/cpu.cc b/src/cpu/o3/cpu.cc index 7320d5638..f567c1868 100644 --- a/src/cpu/o3/cpu.cc +++ b/src/cpu/o3/cpu.cc @@ -192,7 +192,7 @@ FullO3CPU<Impl>::FullO3CPU(DerivO3CPUParams *params) decodeQueue(params->backComSize, params->forwardComSize), renameQueue(params->backComSize, params->forwardComSize), iewQueue(params->backComSize, params->forwardComSize), - activityRec(NumStages, + activityRec(name(), NumStages, params->backComSize + params->forwardComSize, params->activity), |