Hi all I compiled ALPHA_MOESI_CMP_directory/gem5.opt and downloaded the full system images from UT Austin website. When there are 4 processors, I can get the system up and running the blackscholes benchmark successfully using following command:
./build/ALPHA_MOESI_CMP_directory/gem5.opt ./configs/example/fs.py --ruby -n 4 --topology=Mesh --mesh-row=2 --num-dirs=4 --num-l2caches=4 --script=./run.rcS However if I increase the number of CPUs to 64 like this: ./build/ALPHA_MOESI_CMP_directory/gem5.opt ./configs/example/fs.py --ruby -n 64 --topology=Mesh --mesh-row=8 --num-dirs=64 --num-l2caches=64 --script=./run.rcS I got this error **** REAL SIMULATION **** info: Entering event queue @ 0. Starting simulation... panic: Possible Deadlock detected. Aborting! version: 0 request.paddr: 0x[0x4000, line 0x4000] m_readRequestTable: 1 current time: 250000000 issue_time: 0 difference: 250000000 @ tick 250000000 [wakeup:build/ALPHA_MOESI_CMP_directory/mem/ruby/system/Sequencer.cc, line 101] I found that this 0x4000 address is the first cache block that all the processors try to access when they start. And after a L2 cache miss, this missing request is forwarded to its home directory, Directory 0. In my understanding Directory 0 should go to ask a memory controller to fetch this cache block. However, I don't observe the directory controller sending message to memory controller, and in ruby debug log I can see it invokes *qf_queueMemoryFetchRequest*. 4500: system.ruby.dir_cntrl0: [Directory_Controller 0], Time: 9, state: I, event: GETS, addr: [0x4000, line 0x4000] 4500: system.ruby.dir_cntrl0: executing qf_queueMemoryFetchRequest 4500: system.ruby.dir_cntrl0: executing i_popIncomingRequestQueue 4500: system.ruby.dir_cntrl0: next_state: IS Is my configuration causing this problem or other reasons? Many thanks Wen
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
