ruby: Reset ruby stats in RubySystem unserialize
authorBrad Beckmann <Brad.Beckmann@amd.com>
Fri, 20 Aug 2010 18:46:13 +0000 (11:46 -0700)
committerBrad Beckmann <Brad.Beckmann@amd.com>
Fri, 20 Aug 2010 18:46:13 +0000 (11:46 -0700)
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.

src/mem/ruby/system/System.cc
src/mem/ruby/system/System.hh

index 801b2a3e98c1ff8859e0b1633d4c09cc3e996406..a6d0d87d6ec9686f55c55ddf1036f48e5035bd06 100644 (file)
@@ -147,6 +147,23 @@ RubySystem::printStats(ostream& out)
     m_network_ptr->printStats(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
 {
index 77b056faff7697375215b3bb87b7574b472371cf..608aca1d8e7015c463ab6de84cd0de0c9450caa3 100644 (file)
@@ -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);