sim: Revert [34e3295b0e39] (sim: Fix early termination in mult...)
HG changset 34e3295b0e39 introduced a check in the main simulation loop that discards exit events that happen at the same tick as another exit event. This was supposed to fix a problem where a simulation script got confused by multiple exit events. This obviously breaks the simulator since it can hide important simulation events, such as a simulation failure, that happen at the same time as a non-fatal simulation event.
This commit is contained in:
parent
0793d0727b
commit
2442aae54f
1 changed files with 0 additions and 14 deletions
|
@ -44,10 +44,6 @@
|
||||||
* terminate the loop. Exported to Python via SWIG.
|
* terminate the loop. Exported to Python via SWIG.
|
||||||
* @return The SimLoopExitEvent that caused the loop to exit.
|
* @return The SimLoopExitEvent that caused the loop to exit.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// record the clock cycle for last exit event
|
|
||||||
Tick lastExitTick = 0;
|
|
||||||
|
|
||||||
SimLoopExitEvent *
|
SimLoopExitEvent *
|
||||||
simulate(Tick num_cycles)
|
simulate(Tick num_cycles)
|
||||||
{
|
{
|
||||||
|
@ -71,16 +67,6 @@ simulate(Tick num_cycles)
|
||||||
|
|
||||||
Event *exit_event = mainEventQueue.serviceOne();
|
Event *exit_event = mainEventQueue.serviceOne();
|
||||||
if (exit_event != NULL) {
|
if (exit_event != NULL) {
|
||||||
/*
|
|
||||||
* if there are multiple exit events in the same cycle, drain the
|
|
||||||
* following exit events since gem5 only allows one * exit event in
|
|
||||||
* a cycle
|
|
||||||
*/
|
|
||||||
if (lastExitTick == curTick())
|
|
||||||
continue;
|
|
||||||
else
|
|
||||||
lastExitTick = curTick();
|
|
||||||
|
|
||||||
// hit some kind of exit event; return to Python
|
// hit some kind of exit event; return to Python
|
||||||
// event must be subclass of SimLoopExitEvent...
|
// event must be subclass of SimLoopExitEvent...
|
||||||
SimLoopExitEvent *se_event;
|
SimLoopExitEvent *se_event;
|
||||||
|
|
Loading…
Reference in a new issue