misc: Bugfix in TLM integration regarding CleanEvict Command
authorAbdul Mutaal Ahmad <abdul.mutaal@gmail.com>
Tue, 15 Sep 2015 13:14:07 +0000 (08:14 -0500)
committerAbdul Mutaal Ahmad <abdul.mutaal@gmail.com>
Tue, 15 Sep 2015 13:14:07 +0000 (08:14 -0500)
The CleanEvict command was not considered in /util/tlm/sc_port.cc this could
lead to a simulator crash. This issue is solved by ignoring this special
command type.

Committed by: Nilay Vaish <nilay@cs.wisc.edu>

util/tlm/README
util/tlm/sc_port.cc

index f3cb4fbfdd7c1e20f9868f7848d45191179cdd3a..1267052966ed1b4a4ba1bbfb115947bfbcbae500 100644 (file)
@@ -33,7 +33,7 @@ without python.
 > cd ../..
 > scons build/ARM/gem5.opt
 > scons --with-cxx-config --without-python build/ARM/libgem5_opt.so
-> cd util/systemc_tlm
+> cd util/tlm
 
 Set a proper LD_LIBRARY_PATH e.g. for bash:
 > export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/path/to/gem5/build/ARM/"
index c949d3f370c3a1b7125e55da25bd37e14e58847e..3f27980215023f440861b381e092e845f4813603 100644 (file)
@@ -30,6 +30,7 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * Authors: Matthias Jung
+ *          Abdul Mutaal Ahmad
  */
 
 #include <cctype>
@@ -175,8 +176,9 @@ sc_transactor::recvTimingReq(PacketPtr packet)
      * required */
     sc_assert(!needToSendRequestRetry);
 
-    /* FIXME screw coherency traffic */
-    if (packet->memInhibitAsserted())
+    // simply drop inhibited packets and clean evictions
+    if (packet->memInhibitAsserted() ||
+        packet->cmd == MemCmd::CleanEvict)
         return true;
 
     /* Remember if a request comes in while we're blocked so that a retry