Lines Matching refs:mshr

68 #include "mem/cache/mshr.hh"
357 MSHR *mshr = mshrQueue.findMatch(blk_addr, pkt->isSecure());
379 if (!mshr) {
402 BaseCache::handleTimingReqMiss(pkt, mshr, blk, forward_time, request_time);
689 Cache::serviceMSHRTargets(MSHR *mshr, const PacketPtr pkt, CacheBlk *blk)
691 QueueEntry::Target *initial_tgt = mshr->getTarget();
699 !mshr->wasWholeLineWrite;
701 MSHR::TargetList targets = mshr->extractServiceableTargets(pkt);
759 if (blk && blk->isValid() && !mshr->isForward) {
760 satisfyRequest(tgt_pkt, blk, true, mshr->hasPostDowngrade());
827 (is_invalidate || mshr->hasPostInvalidate())) {
863 mshr->hasPostInvalidate());
864 handleSnoop(tgt_pkt, blk, true, true, mshr->hasPostInvalidate());
878 if (is_invalidate || mshr->hasPostInvalidate()) {
880 } else if (mshr->hasPostDowngrade()) {
1197 MSHR *mshr = mshrQueue.findMatch(blk_addr, is_secure);
1209 if (mshr && pkt->mustCheckAbove()) {
1211 "mshr hit\n", pkt->print());
1218 if (mshr && mshr->handleSnoop(pkt, order++)) {
1221 mshr->print());
1223 if (mshr->getNumTargets() > numTarget)
1343 Cache::sendMSHRQueuePacket(MSHR* mshr)
1345 assert(mshr);
1348 PacketPtr tgt_pkt = mshr->getTarget()->pkt;
1355 assert(!tags->findBlock(mshr->blkAddr, mshr->isSecure));
1368 snoop_pkt.senderState = mshr;
1390 markInService(mshr, pending_modified_resp);
1400 "Deallocating mshr target %#x.\n",
1401 mshr->blkAddr);
1403 // Deallocate the mshr target
1404 if (mshrQueue.forceDeallocateTarget(mshr)) {
1406 // mshr when all had previously been utilized
1417 return BaseCache::sendMSHRQueuePacket(mshr);