changeset 18411ccc4f3c in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=18411ccc4f3c
description:
        mem: Remove unused cache squash functionality

        This patch removes the unused squash function from the MSHR queue, and
        the associated (and also unused) threadNum member from the MSHR.

diffstat:

 src/mem/cache/cache.cc      |   3 ---
 src/mem/cache/mshr.cc       |   3 +--
 src/mem/cache/mshr.hh       |   3 ---
 src/mem/cache/mshr_queue.cc |  24 ------------------------
 src/mem/cache/mshr_queue.hh |   9 +--------
 5 files changed, 2 insertions(+), 40 deletions(-)

diffs (106 lines):

diff -r 4f8703832608 -r 18411ccc4f3c src/mem/cache/cache.cc
--- a/src/mem/cache/cache.cc    Mon Dec 28 11:14:15 2015 -0500
+++ b/src/mem/cache/cache.cc    Mon Dec 28 11:14:16 2015 -0500
@@ -807,9 +807,6 @@
 
                     assert(pkt->req->masterId() < system->maxMasters());
                     mshr_hits[pkt->cmdToIndex()][pkt->req->masterId()]++;
-                    if (mshr->threadNum != 0/*pkt->req->threadId()*/) {
-                        mshr->threadNum = -1;
-                    }
                     // We use forward_time here because it is the same
                     // considering new targets. We have multiple
                     // requests for the same address here. It
diff -r 4f8703832608 -r 18411ccc4f3c src/mem/cache/mshr.cc
--- a/src/mem/cache/mshr.cc     Mon Dec 28 11:14:15 2015 -0500
+++ b/src/mem/cache/mshr.cc     Mon Dec 28 11:14:16 2015 -0500
@@ -67,7 +67,7 @@
                queue(NULL), order(0), blkAddr(0),
                blkSize(0), isSecure(false), inService(false),
                isForward(false), allocOnFill(false),
-               threadNum(InvalidThreadID), data(NULL)
+               data(NULL)
 {
 }
 
@@ -216,7 +216,6 @@
     _isUncacheable = target->req->isUncacheable();
     inService = false;
     downstreamPending = false;
-    threadNum = 0;
     assert(targets.isReset());
     // Don't know of a case where we would allocate a new MSHR for a
     // snoop (mem-side request), so set source according to request here
diff -r 4f8703832608 -r 18411ccc4f3c src/mem/cache/mshr.hh
--- a/src/mem/cache/mshr.hh     Mon Dec 28 11:14:15 2015 -0500
+++ b/src/mem/cache/mshr.hh     Mon Dec 28 11:14:16 2015 -0500
@@ -184,9 +184,6 @@
         assert(inService); return postDowngrade;
     }
 
-    /** Thread number of the miss. */
-    ThreadID threadNum;
-
   private:
 
     /** Data buffer (if needed).  Currently used only for pending
diff -r 4f8703832608 -r 18411ccc4f3c src/mem/cache/mshr_queue.cc
--- a/src/mem/cache/mshr_queue.cc       Mon Dec 28 11:14:15 2015 -0500
+++ b/src/mem/cache/mshr_queue.cc       Mon Dec 28 11:14:16 2015 -0500
@@ -239,30 +239,6 @@
     return was_full && !isFull();
 }
 
-void
-MSHRQueue::squash(int threadNum)
-{
-    for (auto i = allocatedList.begin(); i != allocatedList.end();) {
-        MSHR *mshr = *i;
-        if (mshr->threadNum == threadNum) {
-            while (mshr->hasTargets()) {
-                mshr->popTarget();
-                assert(0/*target->req->threadId()*/ == threadNum);
-            }
-            assert(!mshr->hasTargets());
-            assert(mshr->getNumTargets()==0);
-            if (!mshr->inService) {
-                i = deallocateOne(mshr);
-            } else {
-                //mshr->pkt->flags &= ~CACHE_LINE_FILL;
-                ++i;
-            }
-        } else {
-            ++i;
-        }
-    }
-}
-
 DrainState
 MSHRQueue::drain()
 {
diff -r 4f8703832608 -r 18411ccc4f3c src/mem/cache/mshr_queue.hh
--- a/src/mem/cache/mshr_queue.hh       Mon Dec 28 11:14:15 2015 -0500
+++ b/src/mem/cache/mshr_queue.hh       Mon Dec 28 11:14:16 2015 -0500
@@ -170,7 +170,7 @@
 
     /**
      * Remove a MSHR from the queue. Returns an iterator into the
-     * allocatedList for faster squash implementation.
+     * allocatedList.
      * @param mshr The MSHR to remove.
      * @return An iterator to the next entry in the allocatedList.
      */
@@ -200,13 +200,6 @@
     void markPending(MSHR *mshr);
 
     /**
-     * Squash outstanding requests with the given thread number. If a request
-     * is in service, just squashes the targets.
-     * @param threadNum The thread to squash.
-     */
-    void squash(int threadNum);
-
-    /**
      * Deallocate top target, possibly freeing the MSHR
      * @return if MSHR queue is no longer full
      */
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to