diff options
author | Steve Reinhardt <steve.reinhardt@amd.com> | 2010-08-17 05:17:06 -0700 |
---|---|---|
committer | Steve Reinhardt <steve.reinhardt@amd.com> | 2010-08-17 05:17:06 -0700 |
commit | 2519d116c9171ed4bf220d5049f244b333aa0842 (patch) | |
tree | 9aa0a55cf7274e0657383903043e65b3d8fc8eaa | |
parent | cfaddd5fd348bfa6fb8e575d87ca75a05e04b3b0 (diff) | |
download | gem5-2519d116c9171ed4bf220d5049f244b333aa0842.tar.xz |
sim: fold checkpoint restore code into instantiate()
The separate restoreCheckpoint() call is gone; just pass
the checkpoint dir as an optional arg to instantiate().
This change is a precursor to some more extensive
reworking of the startup code.
-rw-r--r-- | configs/common/Simulation.py | 12 | ||||
-rw-r--r-- | src/python/m5/simulate.py | 14 |
2 files changed, 9 insertions, 17 deletions
diff --git a/configs/common/Simulation.py b/configs/common/Simulation.py index 8e1f84cdf..79e3066a8 100644 --- a/configs/common/Simulation.py +++ b/configs/common/Simulation.py @@ -190,8 +190,7 @@ def run(options, root, testsys, cpu_class): for i in xrange(np): testsys.cpu[i].max_insts_any_thread = offset - m5.instantiate() - + checkpoint_dir = None if options.checkpoint_restore != None: from os.path import isdir, exists from os import listdir @@ -212,10 +211,6 @@ def run(options, root, testsys, cpu_class): "cpt.%s.%s" % (options.bench, inst)) if not exists(checkpoint_dir): fatal("Unable to find checkpoint directory %s", checkpoint_dir) - - print "Restoring checkpoint ..." - m5.restoreCheckpoint(checkpoint_dir) - print "Done." else: dirs = listdir(cptdir) expr = re.compile('cpt\.([0-9]*)') @@ -234,10 +229,9 @@ def run(options, root, testsys, cpu_class): ## Adjust max tick based on our starting tick maxtick = maxtick - int(cpts[cpt_num - 1]) + checkpoint_dir = joinpath(cptdir, "cpt.%s" % cpts[cpt_num - 1]) - ## Restore the checkpoint - m5.restoreCheckpoint(joinpath(cptdir, - "cpt.%s" % cpts[cpt_num - 1])) + m5.instantiate(checkpoint_dir) if options.standard_switch or cpu_class: if options.standard_switch: diff --git a/src/python/m5/simulate.py b/src/python/m5/simulate.py index 28ba10c0d..0cf0a254e 100644 --- a/src/python/m5/simulate.py +++ b/src/python/m5/simulate.py @@ -46,7 +46,7 @@ MaxTick = 2**63 - 1 # The final hook to generate .ini files. Called from the user script # once the config is built. -def instantiate(): +def instantiate(ckpt_dir=None): root = objects.Root.getInstance() if not root: @@ -86,6 +86,11 @@ def instantiate(): # We're done registering statistics. Enable the stats package now. stats.enable() + # Restore checkpoint (if any) + if ckpt_dir: + internal.core.unserializeAll(ckpt_dir) + need_resume.append(root) + # Reset to put the stats in a consistent state. stats.reset() @@ -160,13 +165,6 @@ def checkpoint(dir): internal.core.serializeAll(dir) resume(root) -def restoreCheckpoint(dir): - root = objects.Root.getInstance() - print "Restoring from checkpoint" - internal.core.unserializeAll(dir) - need_resume.append(root) - stats.reset() - def changeToAtomic(system): if not isinstance(system, (objects.Root, objects.System)): raise TypeError, "Parameter of type '%s'. Must be type %s or %s." % \ |