Davide Basilio Bartolini has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/56729 )

Change subject: mem: fix hardware prefetchers for mostly_excl caches
......................................................................

mem: fix hardware prefetchers for mostly_excl caches

Change-Id: I87e20fb5d6e238caef7c0f8a49fd7dd691f60cb4
---
M src/mem/cache/base.cc
M src/mem/packet.hh
2 files changed, 33 insertions(+), 1 deletion(-)



diff --git a/src/mem/cache/base.cc b/src/mem/cache/base.cc
index f97c30a..5a89898 100644
--- a/src/mem/cache/base.cc
+++ b/src/mem/cache/base.cc
@@ -388,6 +388,11 @@
             blk->clearPrefetched();
         }

+        if (pkt->needsDelayedClusivityMaintenance()) {
+            maintainClusivity(pkt->fromCache(), blk);
+            pkt->clearDelayedClusivityMaintenance();
+        }
+
         handleTimingReqHit(pkt, blk, request_time);
     } else {
         handleTimingReqMiss(pkt, blk, forward_time, request_time);
@@ -1398,7 +1403,7 @@
         }

         satisfyRequest(pkt, blk);
-        maintainClusivity(pkt->fromCache(), blk);
+        pkt->setDelayedClusivityMaintenance();

         return true;
     }
diff --git a/src/mem/packet.hh b/src/mem/packet.hh
index 88995f1..9ccd018 100644
--- a/src/mem/packet.hh
+++ b/src/mem/packet.hh
@@ -408,8 +408,26 @@
      */
     uint64_t htmTransactionUid;

+    /**
+     * Flag to be set for delayed clusivity maintenance.
+     * See: https://gem5.atlassian.net/browse/GEM5-1188
+     */
+    bool clusivityMaintenanceFlag = false;
+
   public:

+    bool needsDelayedClusivityMaintenance() {
+        return clusivityMaintenanceFlag;
+    }
+
+    void setDelayedClusivityMaintenance() {
+        clusivityMaintenanceFlag = true;
+    }
+
+    void clearDelayedClusivityMaintenance() {
+        clusivityMaintenanceFlag = false;
+    }
+
     /**
      * The extra delay from seeing the packet until the header is
      * transmitted. This delay is used to communicate the crossbar

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/56729
To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings

Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I87e20fb5d6e238caef7c0f8a49fd7dd691f60cb4
Gerrit-Change-Number: 56729
Gerrit-PatchSet: 1
Gerrit-Owner: Davide Basilio Bartolini <davide.basilio.bartol...@huawei.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to