config: Fix checkpoint restore in C++ config example

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.
This commit is contained in:
Andrew Bardsley 2014-11-14 03:54:02 -05:00
parent 481eb6ae80
commit 27b7b9e561

View 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();