config: Initialize and check cpt_starttick

The previous changeset (9816) that fixes the use of max ticks introduced the
variable cpt_starttick, which is used for setting the relative max tick.
Unfortunately, with checkpointing at an instruction count or with simpoints,
the checkpoint tick is not stored conveniently, so to ensure that cpt_starttick
is initialized, set it to 0. Also, if using --rel-max-tick, check the use of
instruction counts or simpoints to warn the user that the max tick setting does
not include the checkpoint ticks.
This commit is contained in:
Joel Hestness 2013-09-11 15:34:21 -05:00
parent c1cf55c738
commit 073b27c257

View file

@ -126,6 +126,7 @@ def findCptDir(options, cptdir, testsys):
if not isdir(cptdir): if not isdir(cptdir):
fatal("checkpoint dir %s does not exist!", cptdir) fatal("checkpoint dir %s does not exist!", cptdir)
cpt_starttick = 0
if options.at_instruction or options.simpoint: if options.at_instruction or options.simpoint:
inst = options.checkpoint_restore inst = options.checkpoint_restore
if options.simpoint: if options.simpoint:
@ -430,6 +431,11 @@ def run(options, root, testsys, cpu_class):
# NOTE: this may need to be updated if checkpoints ever store # NOTE: this may need to be updated if checkpoints ever store
# the ticks per simulated second # the ticks per simulated second
maxtick_from_rel += cpt_starttick maxtick_from_rel += cpt_starttick
if options.at_instruction or options.simpoint:
warn("Relative max tick specified with --at-instruction or" \
" --simpoint\n These options don't specify the " \
"checkpoint start tick, so assuming\n you mean " \
"absolute max tick")
explicit_maxticks += 1 explicit_maxticks += 1
if options.maxtime: if options.maxtime:
maxtick_from_maxtime = m5.ticks.fromSeconds(options.maxtime) maxtick_from_maxtime = m5.ticks.fromSeconds(options.maxtime)