Checkpoint: Fix broken checkpointing functionality
authorAndreas Hansson <andreas.hansson@arm.com>
Tue, 21 Aug 2012 09:48:52 +0000 (05:48 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Tue, 21 Aug 2012 09:48:52 +0000 (05:48 -0400)
This patch fixes the checkpointing by ensuring that the directory is
passer to the scriptCheckpoints function, and that the num_checkpoints
is not used before it is initialised.

configs/common/Simulation.py

index 0c399e9b7e7360ac445ebd324253c9b7b29dcaa8..568b7832247cb97e2d49c3adb1ac189dfc0ac7b8 100644 (file)
@@ -153,7 +153,7 @@ def findCptDir(options, maxtick, cptdir, testsys):
 
     return maxtick, checkpoint_dir
 
-def scriptCheckpoints(options):
+def scriptCheckpoints(options, cptdir):
     if options.at_instruction or options.simpoint:
         checkpoint_inst = int(options.take_checkpoints)
 
@@ -180,6 +180,7 @@ def scriptCheckpoints(options):
         when, period = options.take_checkpoints.split(",", 1)
         when = int(when)
         period = int(period)
+        num_checkpoints = 0
 
         exit_event = m5.simulate(when)
         exit_cause = exit_event.getCause()
@@ -192,7 +193,6 @@ def scriptCheckpoints(options):
             num_checkpoints += 1
 
         sim_ticks = when
-        num_checkpoints = 0
         max_checkpoints = options.max_checkpoints
 
         while num_checkpoints < max_checkpoints and \
@@ -488,7 +488,7 @@ def run(options, root, testsys, cpu_class):
         # subsequent periods of <period>.  Checkpoint instructions
         # received from the benchmark running are ignored and skipped in
         # favor of command line checkpoint instructions.
-        exit_cause = scriptCheckpoints(options)
+        exit_cause = scriptCheckpoints(options, cptdir)
     else:
         if options.fast_forward:
             m5.stats.reset()