add in checkpoint restoration option, you can restore a checkpoint by giving a directory, and then giving a checkpoint number, the earliest checkpoint is 1, the latest is N. the default checkpoint directory is the cwd.
so you can restore by a command line like this: m5.opt fs.py --checkpoint_dir="/my/ckpt/dir" -c 3 configs/example/fs.py: add in checkpoint restoration option, you can restore a checkpoint by giving a directory, and then giving a checkpoint number, the earliest checkpoint is 1, the latest is N. --HG-- extra : convert_revision : bf9c8d3265a3875cdfb6a878005baa7ae29af90d
This commit is contained in:
parent
67c20dd9dd
commit
67a114fc29
1 changed files with 27 additions and 0 deletions
|
@ -55,6 +55,8 @@ parser.add_option("--etherdump", action="store", type="string", dest="etherdump"
|
||||||
"ethernet traffic")
|
"ethernet traffic")
|
||||||
parser.add_option("--checkpoint_dir", action="store", type="string",
|
parser.add_option("--checkpoint_dir", action="store", type="string",
|
||||||
help="Place all checkpoints in this absolute directory")
|
help="Place all checkpoints in this absolute directory")
|
||||||
|
parser.add_option("-c", "--checkpoint", action="store", type="int",
|
||||||
|
help="restore from checkpoint <N>")
|
||||||
|
|
||||||
(options, args) = parser.parse_args()
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
|
@ -115,6 +117,31 @@ else:
|
||||||
|
|
||||||
m5.instantiate(root)
|
m5.instantiate(root)
|
||||||
|
|
||||||
|
if options.checkpoint:
|
||||||
|
from os.path import isdir
|
||||||
|
from os import listdir, getcwd
|
||||||
|
import re
|
||||||
|
if options.checkpoint_dir:
|
||||||
|
cptdir = options.checkpoint_dir
|
||||||
|
else:
|
||||||
|
cptdir = getcwd()
|
||||||
|
|
||||||
|
if not isdir(cptdir):
|
||||||
|
m5.panic("checkpoint dir %s does not exist!" % cptdir)
|
||||||
|
|
||||||
|
dirs = listdir(cptdir)
|
||||||
|
expr = re.compile('cpt.([0-9]*)')
|
||||||
|
cpts = []
|
||||||
|
for dir in dirs:
|
||||||
|
match = expr.match(dir)
|
||||||
|
if match:
|
||||||
|
cpts.append(match.group(1))
|
||||||
|
|
||||||
|
if options.checkpoint > len(cpts):
|
||||||
|
m5.panic('Checkpoint %d not found' % options.checkpoint)
|
||||||
|
|
||||||
|
m5.restoreCheckpoint(root, "/".join([cptdir, "cpt.%s" % cpts[options.checkpoint - 1]]))
|
||||||
|
|
||||||
if options.maxtick:
|
if options.maxtick:
|
||||||
maxtick = options.maxtick
|
maxtick = options.maxtick
|
||||||
elif options.maxtime:
|
elif options.maxtime:
|
||||||
|
|
Loading…
Reference in a new issue