summaryrefslogtreecommitdiff
path: root/src/mem/cache/miss/mshr_queue.cc
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2007-07-22 21:43:38 -0700
committerSteve Reinhardt <stever@eecs.umich.edu>2007-07-22 21:43:38 -0700
commit82e2a3557672864f0ea3ae64dad61681546aaf07 (patch)
tree1f0b74fe61274972525694ef6ad4bfbcb8b60231 /src/mem/cache/miss/mshr_queue.cc
parentfe442f67adad74130bb496061f2e13a993bdfcdd (diff)
downloadgem5-82e2a3557672864f0ea3ae64dad61681546aaf07.tar.xz
Replace lowerMSHRPending flag with more robust scheme
based on following Packet senderState links. --HG-- extra : convert_revision : 9027d59bd7242aa0e4275bf94d8b1fb27bd59d79
Diffstat (limited to 'src/mem/cache/miss/mshr_queue.cc')
-rw-r--r--src/mem/cache/miss/mshr_queue.cc16
1 files changed, 4 insertions, 12 deletions
diff --git a/src/mem/cache/miss/mshr_queue.cc b/src/mem/cache/miss/mshr_queue.cc
index 4d3cf30e1..50a28fb3c 100644
--- a/src/mem/cache/miss/mshr_queue.cc
+++ b/src/mem/cache/miss/mshr_queue.cc
@@ -179,20 +179,12 @@ MSHRQueue::moveToFront(MSHR *mshr)
void
MSHRQueue::markInService(MSHR *mshr)
{
- assert(!mshr->inService);
- if (mshr->isSimpleForward()) {
- // we just forwarded the request packet & don't expect a
- // response, so get rid of it
- assert(mshr->getNumTargets() == 1);
- mshr->popTarget();
+ if (mshr->markInService()) {
deallocate(mshr);
- return;
+ } else {
+ readyList.erase(mshr->readyIter);
+ inServiceEntries += 1;
}
- mshr->inService = true;
- readyList.erase(mshr->readyIter);
- //mshr->readyIter = NULL;
- inServiceEntries += 1;
- //readyList.pop_front();
}
void