[Gems-users] m_L2Cache_responseFromL2Cache and deadlock


Date: Tue, 11 Dec 2007 12:01:02 -0500
From: "Tushar Krishna (tkrishna@xxxxxxxxxxxxx)" <tkrishna@xxxxxxxxxxxxx>
Subject: [Gems-users] m_L2Cache_responseFromL2Cache and deadlock
Hi
I have implemented a prefetch scheme in Ruby that issues a prefetch from L2 and doesnt allow the data to go back to L1.
I am getting some Deadlock error in system/Sequencer.C after the code runs for a while. 

I noticed that I get an unusually high number of forwarded requests as well with prefetch while the normal case didnt have any forwarded requests at all. (Note I have used MSI_MOSI_CMP_directory. I have one chip. 16 cores, 16 L1 caches, 1 shared L2 with 16 banks, and 4 memories)... Could that be due to any protocol violations?

I have made changes in the L2 Cache Controller and wherever there is a response to L1, I dont do that for the prefetch messages. For eg h_issueLoadHit would not enqueue its response in m_L2Cache_responseFromL2Cache_vec... There are total 5 functions in L2 Cache Controller where the comments indicate that they should not send notify the L1 in case of prefetch. These are h_issueLoadHit, oo_issueLoadHitInv(), hh_issueStoreHit(), pp_issueStoreHitInv() and cc_issueStoreHitDG() ....  However there are lots of functions which enqueue messages in m_L2Cache_responseFromL2Cache_vec like w_sendPutAckToL1Cache(), e_dataFromL2CacheToL2Requestor, t_sendAckToInvalidator() ... Wherever there the function checks the m_L2Cache_L1RequestToL2Cache_vec and then enqueues messages in m_L2Cache_responseFromL2Cache_vec, I have added code to do this check and enqueueing only for non-prefetch messages. 
My question is: Does the m_L2Cache_responseFromL2Cache_vec also send some ack messages to the directory or is it only connected to L1 ? I think probably the Directory is waiting for some acks which leads to the deadlock. If it does send messages to the directory as well, how can I allow the L2 to only send messages to the directory and not to L1.
Moreover, what could be a possible reason for lots of forwarded messages?


Thanks
Tushar



[← Prev in Thread] Current Thread [Next in Thread→]
  • [Gems-users] m_L2Cache_responseFromL2Cache and deadlock, Tushar Krishna (tkrishna@xxxxxxxxxxxxx) <=