Hi Nilay,

If I'm correctly reproducing your problem, I believe I know what the issue is.  
However, before I try to fix it, I want to propose simply getting rid of the 
MESI_CMP_directory.  The more and more I look at that protocol, the more 
problems I see.  There are several design and logic issues in the protocol.  
Unless someone wants to volunteer to fix them, I say we get rid of it as well 
as all of the protocols not being tested by the regression tester.

Now the particular problem that I see causing the deadlock is that that L2 
cache is drop a PUTX request from the L1 because the L2 is in SS_MB state.  
Thus the L1 remains in M_I state for infinity which of course will eventually 
lead to a deadlock.

Brad


-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of 
Nilay Vaish
Sent: Tuesday, December 21, 2010 1:04 PM
To: [email protected]
Subject: [m5-dev] Deadlock while running ruby_random_test.py

I am running ALPHA_SE_MESI_CMP_directory with ruby_random_test.py. I supply the 
option -l as 2000. I have pasted the output below. This was generated using 
latest version of m5.

Actually, while testing my own changes to SLICC and protocol files, I also 
observe the dead lock at the 3000001. So I ran the latest version and found 
even that gets stuck.

Is this a known problem? Am I doing some thing wrong?

Thanks
Nilay

-----------------------------------------------------------------
M5 Simulator System

Copyright (c) 2001-2008
The Regents of The University of Michigan All Rights Reserved


M5 compiled Dec 21 2010 14:51:00
M5 revision 85e1847726e3 7798 default tip
M5 started Dec 21 2010 14:52:30
M5 executing on scamorza.cs.wisc.edu
command line: ./build/ALPHA_SE_MESI_CMP_directory/m5.debug
./configs/example/ruby_random_test.py -l 2000 Global frequency set at 
1000000000 ticks per second
info: Entering event queue @ 0.  Starting simulation...
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:102: 
Possible Deadlock detected
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:102: 
Possible Deadlock detected
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:103: 
m_version is 0
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:103: 
m_version is 0
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:104: 
request->ruby_request.paddr is 1092
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:104: 
request->ruby_request.paddr is 1092
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:105: 
m_readRequestTable.size() is 4
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:105: 
m_readRequestTable.size() is 4
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:106: 
current_time is 3000001
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:106: 
current_time is 3000001
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:107: 
request->issue_time is 2292161
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:107: 
request->issue_time is 2292161
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:108: 
current_time - request->issue_time is 707840
Warning: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:108: 
current_time - request->issue_time is 707840 Fatal Error: in fn virtual void 
Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:109: 
Aborting
Fatal Error: in fn virtual void Sequencer::wakeup() in
build/ALPHA_SE_MESI_CMP_directory/mem/ruby/system/Sequencer.cc:109: 
Aborting
Program aborted at cycle 3000001
Aborted

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev


_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to