Ruby: Ensure snoop requests are sent using sendTimingSnoopReq
authorAndreas Hansson <andreas.hansson@arm.com>
Fri, 4 May 2012 07:30:02 +0000 (03:30 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Fri, 4 May 2012 07:30:02 +0000 (03:30 -0400)
This patch fixes a bug that caused snoop requests to be placed in a
packet queue. Instead, the packet is now sent immediately using
sendTimingSnoopReq, thus bypassing the packet queue and any normal
responses waiting to be sent.

src/mem/ruby/system/RubyPort.cc

index 53b6e8e6ded9e3e92b3b25fadb327d46828577f8..3621cc9e3e5509c8c622a14d73d97b684f05221c 100644 (file)
@@ -698,7 +698,7 @@ RubyPort::ruby_eviction_callback(const Address& address)
         if ((*p)->getMasterPort().isSnooping()) {
             Packet *pkt = new Packet(&req, MemCmd::InvalidationReq);
             // send as a snoop request
-            (*p)->sendNextCycle(pkt, true);
+            (*p)->sendTimingSnoopReq(pkt);
         }
     }
 }