From 826f69b47073f23ced9b6a2f5eac51e3ae9bc953 Mon Sep 17 00:00:00 2001 From: Malek Musleh Date: Tue, 14 Apr 2015 11:01:10 -0500 Subject: config, cpu: fix progress interval for switched CPUs This patch ensures that the CPU progress Event is triggered for the new set of switched_cpus that get scheduled (e.g. during fast-forwarding). it also avoids printing the interval state if the cpu is currently switched out. Committed by: Nilay Vaish --- src/cpu/base.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/cpu/base.cc') diff --git a/src/cpu/base.cc b/src/cpu/base.cc index b761e714e..4d8b09ed2 100644 --- a/src/cpu/base.cc +++ b/src/cpu/base.cc @@ -94,6 +94,14 @@ void 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 @@ CPUProgressEvent::process() temp - lastNumInst); #endif lastNumInst = temp; - - if (_repeatEvent) - cpu->schedule(this, curTick() + _interval); } const char * -- cgit v1.2.3