sim: draining bug for fast-forwaring multiple cores

fix draining bug where multiple cores hit max_insts_any_thread simultaneously

Committed by: Nilay Vaish <nilay@cs.wisc.edu>
This commit is contained in:
Andrew Lukefahr 2014-10-11 15:02:22 -05:00
parent 2816521f0d
commit f94fd44991

View file

@ -184,7 +184,11 @@ def drain(root):
# If we've got some objects that can't drain immediately, then simulate
if unready_objs > 0:
dm.setCount(unready_objs)
simulate()
#WARNING: if a valid exit event occurs while draining, it will not
# get returned to the user script
exit_event = simulate()
while exit_event.getCause() != 'Finished drain':
exit_event = simulate()
else:
all_drained = True
internal.drain.cleanupDrainManager(dm)