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

Reply via email to