Checkpoint: Fix broken checkpointing functionality

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.
This commit is contained in:
Andreas Hansson 2012-08-21 05:48:52 -04:00
parent 0160d51483
commit 4ebefc145a

View file

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