Packet: Cleaning up packet command and attribute
authorAndreas Hansson <andreas.hansson@arm.com>
Wed, 23 May 2012 13:18:04 +0000 (09:18 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Wed, 23 May 2012 13:18:04 +0000 (09:18 -0400)
This patch removes unused commands and attributes from the packet to
avoid any confusion. It is part of an effort to clear up how and where
different commands and attributes are used.

src/mem/packet.cc
src/mem/packet.hh

index 4c3a785dce4b337a0627d869d4f56d650403edd5..69cf36a5c63914dd6bb78db2c332a570d897dc2b 100644 (file)
@@ -98,11 +98,11 @@ MemCmd::commandInfo[] =
     /* HardPFResp */
     { SET4(IsRead, IsResponse, IsHWPrefetch, HasData),
             InvalidCmd, "HardPFResp" },
-    /* WriteInvalidateReq */
+    /* WriteInvalidateReq (currently unused, see packet.hh) */
     { SET6(IsWrite, NeedsExclusive, IsInvalidate,
            IsRequest, HasData, NeedsResponse),
             WriteInvalidateResp, "WriteInvalidateReq" },
-    /* WriteInvalidateResp */
+    /* WriteInvalidateResp (currently unused, see packet.hh) */
     { SET3(IsWrite, NeedsExclusive, IsResponse),
             InvalidCmd, "WriteInvalidateResp" },
     /* UpgradeReq */
index e49fa67b8fe1ae4a477ccd83dfb209111f786627..fc48b08ce45eb2f4545a92d61540b6e218cb948f 100644 (file)
@@ -91,6 +91,14 @@ class MemCmd
         HardPFReq,
         SoftPFResp,
         HardPFResp,
+        // WriteInvalidateReq transactions used to be generated by the
+        // DMA ports when writing full blocks to memory, however, it
+        // is not used anymore since we put the I/O cache in place to
+        // deal with partial block writes. Hence, WriteInvalidateReq
+        // and WriteInvalidateResp are currently unused. The
+        // implication is that the I/O cache does read-exclusive
+        // operations on every full-cache-block DMA, and ultimately
+        // this needs to be fixed.
         WriteInvalidateReq,
         WriteInvalidateResp,
         UpgradeReq,
@@ -133,7 +141,6 @@ class MemCmd
         IsRead,         //!< Data flows from responder to requester
         IsWrite,        //!< Data flows from requester to responder
         IsUpgrade,
-        IsPrefetch,     //!< Not a demand access
         IsInvalidate,
         NeedsExclusive, //!< Requires exclusive copy to complete in-cache
         IsRequest,      //!< Issued by requester