Add in checkpointing in the frontend, so that when a checkpoint is called, the python handles it, and the simulation continues. Also, make it so that the cycle number is part of the cpt dir name, so that multiple checkpoints do not overwrite each other.
--HG-- extra : convert_revision : a55e4ac20da5a57ea8735951b9070960b9b8298f
This commit is contained in:
parent
df3af8018e
commit
c475fd5211
1 changed files with 9 additions and 11 deletions
|
@ -102,21 +102,19 @@ else:
|
|||
|
||||
m5.instantiate(root)
|
||||
|
||||
#exit_event = m5.simulate(2600000000000)
|
||||
#if exit_event.getCause() != "user interrupt received":
|
||||
# m5.checkpoint(root, 'cpt')
|
||||
# exit_event = m5.simulate(300000000000)
|
||||
# if exit_event.getCause() != "user interrupt received":
|
||||
# m5.checkpoint(root, 'cptA')
|
||||
|
||||
|
||||
if options.maxtick:
|
||||
exit_event = m5.simulate(options.maxtick)
|
||||
arg = options.maxtick
|
||||
elif options.maxtime:
|
||||
simtime = int(options.maxtime * root.clock.value)
|
||||
print "simulating for: ", simtime
|
||||
exit_event = m5.simulate(simtime)
|
||||
arg = simtime
|
||||
else:
|
||||
exit_event = m5.simulate()
|
||||
arg = -1
|
||||
|
||||
exit_event = m5.simulate(arg)
|
||||
|
||||
while exit_event.getCause() == "checkpoint":
|
||||
m5.checkpoint(root, "cpt.%d")
|
||||
exit_event = m5.simulate(arg)
|
||||
|
||||
print 'Exiting @ cycle', m5.curTick(), 'because', exit_event.getCause()
|
||||
|
|
Loading…
Reference in a new issue