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:
Lisa Hsu 2006-08-16 17:54:00 -04:00
parent df3af8018e
commit c475fd5211

View file

@ -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()