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
