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>
diff --git a/src/python/m5/simulate.py b/src/python/m5/simulate.py
index 8529a74..5673e26 100644
--- a/src/python/m5/simulate.py
+++ b/src/python/m5/simulate.py
@@ -184,7 +184,11 @@
# 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)