summaryrefslogtreecommitdiff
path: root/src/mem
diff options
context:
space:
mode:
authorBrad Beckmann <Brad.Beckmann@amd.com>2010-08-20 11:46:13 -0700
committerBrad Beckmann <Brad.Beckmann@amd.com>2010-08-20 11:46:13 -0700
commitac5bb214e3dd8ba91feebd9c50ae7d3d9028668c (patch)
tree989714d71d1c9a7e20162264ef20abcebee3cbda /src/mem
parent72044e3f5a5b9455e07180806793127be2014451 (diff)
downloadgem5-ac5bb214e3dd8ba91feebd9c50ae7d3d9028668c.tar.xz
ruby: Reset ruby stats in RubySystem unserialize
The main purpose for clearing stats in the unserialize process is so that the profiler can correctly set its start time to the unserialized value of curTick.
Diffstat (limited to 'src/mem')
-rw-r--r--src/mem/ruby/system/System.cc17
-rw-r--r--src/mem/ruby/system/System.hh3
2 files changed, 20 insertions, 0 deletions
diff --git a/src/mem/ruby/system/System.cc b/src/mem/ruby/system/System.cc
index 801b2a3e9..a6d0d87d6 100644
--- a/src/mem/ruby/system/System.cc
+++ b/src/mem/ruby/system/System.cc
@@ -148,6 +148,23 @@ RubySystem::printStats(ostream& out)
}
void
+RubySystem::serialize(std::ostream &os)
+{
+
+}
+
+void
+RubySystem::unserialize(Checkpoint *cp, const string &section)
+{
+ //
+ // The main purpose for clearing stats in the unserialize process is so
+ // that the profiler can correctly set its start time to the unserialized
+ // value of curTick
+ //
+ clearStats();
+}
+
+void
RubySystem::clearStats() const
{
m_profiler_ptr->clearStats();
diff --git a/src/mem/ruby/system/System.hh b/src/mem/ruby/system/System.hh
index 77b056faf..608aca1d8 100644
--- a/src/mem/ruby/system/System.hh
+++ b/src/mem/ruby/system/System.hh
@@ -125,6 +125,9 @@ class RubySystem : public SimObject
void print(std::ostream& out) const;
+ virtual void serialize(std::ostream &os);
+ virtual void unserialize(Checkpoint *cp, const std::string &section);
+
private:
// Private copy constructor and assignment operator
RubySystem(const RubySystem& obj);