Hi Ignatios, I think you're running into a problem that I recently experienced.
Try applying this patch and see if it solves your problem. diff --git a/src/cpu/o3/fetch_impl.hh b/src/cpu/o3/fetch_impl.hh --- a/src/cpu/o3/fetch_impl.hh +++ b/src/cpu/o3/fetch_impl.hh @@ -1049,7 +1049,8 @@ if (checkStall(tid) && fetchStatus[tid] != IcacheWaitResponse && fetchStatus[tid] != IcacheWaitRetry && - fetchStatus[tid] != ItlbWait) { + fetchStatus[tid] != ItlbWait && + fetchStatus[tid] != QuiescePending) { DPRINTF(Fetch, "[tid:%i]: Setting to blocked\n",tid); fetchStatus[tid] = Blocked; Ali On Apr 13, 2013, at 7:09 AM, ignacio charalabidis <ign...@hotmail.com> wrote: > Hello, > > I am performing a switch between two O3CPUs which are defined as below: > > > If I run in .opt mode with debug-Flag=O3CPUAll enabled the following > assertion is being raised: > > gem5.opt: build/ARM/cpu/o3/cpu.cc:592: void FullO3CPU<Impl>::tick() [with > Impl = O3CPUImpl]: Assertion `!switchedOut()' failed. > > which is logical since after the switching, the mainCpu->switchedOut is True. > > In the trace file I see this: > > 20350024000: system.mainCpu: Scheduling next tick! > 20350024000: system.mainCpu.iq: Processing FU completion [sn:28238748] > 20350024000: system.mainCpu: CPU already running. > 20350024000: system.mainCpu: Switching out > 20350024000: system.mainCpu: switchOut in cpu.cc file called > 20350024000: system.secondmainCpu: takeOverFrom in cpu.cc file called > .... > 0350024000: system.secondmainCpu: Stage 3 already active. > 20350024000: system.mainCpu: Cpu is switched out! > 20350025000: system.mainCpu: > > FullO3CPU: Ticking main, FullO3CPU. > > why it still tries to run the tick() in the system.mainCpu? > > Regards, > Ignatios > > _______________________________________________ > gem5-users mailing list > gem5-users@gem5.org > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________ gem5-users mailing list gem5-users@gem5.org http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users