config: Fix checkpoint restore in C++ config example
authorAndrew Bardsley <Andrew.Bardsley@arm.com>
Fri, 14 Nov 2014 08:54:02 +0000 (03:54 -0500)
committerAndrew Bardsley <Andrew.Bardsley@arm.com>
Fri, 14 Nov 2014 08:54:02 +0000 (03:54 -0500)
This patch fixes the checkpoint restore option in the example of C++
configuration (util/cxx_config).

The fix introduces a call to config_manager->startup() (which calls startup
on all SimObjects managed by that manager) to replicate the loop of
SimObject::startup calls in src/python/m5/simulate.py::simulate guarded by
need_startup.  As util/cxx_config/main.cc is a C++ analogue of
src/python/mt/simulate.py, it should make a similar set of calls.

util/cxx_config/main.cc

index a9a86b42454904661ab6f2f23a0081f645891da2..afc166174bfddded0d0155b0c4698a2597f506dd 100644 (file)
@@ -88,7 +88,7 @@ usage(const std::string &prog_name)
         "    -s <dir> <ticks>             -- save checkpoint to dir after"
         " the given\n"
         "                                    number of ticks\n"
-        "    -r <dir>                     -- restore checkpoint to dir\n"
+        "    -r <dir>                     -- restore checkpoint from dir\n"
         "    -c <from> <to> <ticks>       -- switch from cpu 'from' to cpu"
         " 'to' after\n"
         "                                    the given number of ticks\n"
@@ -226,7 +226,6 @@ main(int argc, char **argv)
     GlobalSimLoopExitEvent *exit_event = NULL;
 
     if (checkpoint_save) {
-
         exit_event = simulate(pre_run_time);
 
         DrainManager drain_manager;
@@ -265,6 +264,7 @@ main(int argc, char **argv)
 
         Serializable::unserializeGlobals(checkpoint);
         config_manager->loadState(checkpoint);
+        config_manager->startup();
 
         config_manager->drainResume();