天天看點

ruby MOESI_CMP_directory Invalid RubyRequestType和Possible Deadlock detected. Aborting!錯誤

參考:

https://www.mail-archive.com/[email protected]/msg08744.html  (解決問題一)

http://thread.gmane.org/gmane.comp.emulators.m5.users/17022/focus=17029   (解決問題二)

問題來源:

gem5中初次使用ruby memory system時出現的問題。

解決方法:

問題一:

當執行如下指令時:      
./build/ALPHA_MOESI_CMP_directory/gem5.opt ./configs/example/ruby_fs.py -n 4 
--script=./dist-parsec/genrcS/blackscholes_4c_simmedium_ckpts.rcS      
出現錯誤:      
panic: Runtime Error at MOESI_CMP_directory-L1cache.sm:243, Ruby Time: 
6092631646, Invalid RubyRequestType.      
解決方法:      
初次建立checkpoint時,需要使用MOESI_hammer生成checkpoint之後才能,才能在其它協定下運作。(gem5裡面預設的規定吧)      
(原文:       
Ruby checkpointing is protocol independent.
You must take the checkpoint using MOESI_hammer,
then you can restore it with any other protocol.      
問題如下:      
panic: Possible Deadlock detected. Aborting!
version: 18 request.paddr: 0x[0x330000, line 0x330000]
m_writeRequestTable: 1 current time: 2618875986000 issue_time: 2618625986000
difference: 250000000
<at>  cycle 2618875986000
[wakeup:build/ALPHA/mem/ruby/system/Sequencer.cc, line 122]
Memory Usage: 1739068 KBytes
Program aborted at cycle 2618875986000
      
build/ALPHA/gem5.opt configs/example/ruby_fs.py --cpu-clock=3GHz --kernel=/dist/m5/system/binaries/vmlinux_2.6.27-gcc_4.3.4 -n 4 -r 1 --script=benchmark/blackscholes_16c_simsmall_ckpts.rcS --cpu-type=timing --l1d_size=32kB --l1i_size=32kB --l2_size=4MB --num-l2caches=8 --topology=Crossbar -I 2000000000 --garnet-network=flexible --restore-with-cpu=timing
總結:      
在使用gem5的ruby存儲系統跑parsec測試集時,應遵循如下步驟:      
1. 使用MOESI_hammer協定編譯gem5.opt      
2. 運作gem5.opt ruby_fs.py程式,直到生成checkpoint即可終止其運作      
3. 從checkpoint開始運作測試集,即問題二的指令行,直至運作結束