Hi, I have a multi-threaded program which runs great on GEM5 with :
--cpu-type=timing, or --cpu-type=atomic I have now been trying to run the same code, but with periodic repeated switching between the timing and atomic type CPUs. Here's my command line - *./build/X86/gem5.opt configs/example/se.py --repeat-switch=1000000000 --cpu-type=atomic --restore-with-cpu=timing --checkpoint-restore=1 --caches -n64 --mem-size=8GB -c <application-64-threads>* The code runs for a while, but then I get a segmentation fault. A run under GDB tells me that this happens at - *0x000000000068ee86 in MasterPort::sendAtomic(Packet*) () at build/X86/mem/port.cc:168* *168 return _slavePort->recvAtomic(pkt);* *(gdb) bt* *#0 0x000000000068ee86 in MasterPort::sendAtomic(Packet*) () at build/X86/mem/port.cc:168* *#1 0x00000000005736ef in AtomicSimpleCPU::tick() () at build/X86/cpu/simple/atomic.cc:615* *#2 0x00000000008000c1 in EventQueue::serviceOne() () at build/X86/sim/eventq.cc:228* *#3 0x0000000000820c18 in doSimLoop(EventQueue*) () at build/X86/sim/simulate.cc:218* Could someone confirm if this is the best way to switch between timing and atomic models? Any pointers on which source files to start from to debug this? Also, I sometimes get the following print on the console when the simulator switches from atomic to timing: *WARNING: Bank is already active!* *Command: 0, Timestamp: 6448, Bank: 4* *WARNING: Bank is already active!* *Command: 0, Timestamp: 8074, Bank: 2* *WARNING: Bank is already active!* *Command: 0, Timestamp: 6860, Bank: 1* Thanks.
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
