diff -r 8a7285d6197e -r 51e57bda4ab3 configs/common/Simulation.py --- a/configs/common/Simulation.py Fri Mar 27 04:56:10 2015 -0400 +++ b/configs/common/Simulation.py Thu Apr 02 18:54:34 2015 -0400 @@ -462,6 +462,7 @@ switch_cpus[i].system = testsys switch_cpus[i].workload = testsys.cpu[i].workload switch_cpus[i].clk_domain = testsys.cpu[i].clk_domain + switch_cpus[i].progress_interval = testsys.cpu[i].progress_interval # simulation period if options.maxinsts: switch_cpus[i].max_insts_any_thread = options.maxinsts diff -r 8a7285d6197e -r 51e57bda4ab3 src/cpu/base.cc --- a/src/cpu/base.cc Fri Mar 27 04:56:10 2015 -0400 +++ b/src/cpu/base.cc Thu Apr 02 18:54:34 2015 -0400 @@ -94,6 +94,14 @@ CPUProgressEvent::process() { Counter temp = cpu->totalOps(); + + if (_repeatEvent) + cpu->schedule(this, curTick() + _interval); + + if(cpu->switchedOut()) { + return; + } + #ifndef NDEBUG double ipc = double(temp - lastNumInst) / (_interval / cpu->clockPeriod()); @@ -107,9 +115,6 @@ temp - lastNumInst); #endif lastNumInst = temp; - - if (_repeatEvent) - cpu->schedule(this, curTick() + _interval); } const char *