// lat, neglecting responseLatency, modelling hit latency
// just as lookupLatency or or the value of lat overriden
// by access(), that calls accessBlock() function.
- cpuSidePort->schedTimingResp(pkt, request_time);
+ cpuSidePort->schedTimingResp(pkt, request_time, true);
} else {
// queue the packet for deletion, as the sending cache is
// still relying on it; if the block is found in access(),
std::memset(pkt->getPtr<uint8_t>(), 0xFF, pkt->getSize());
// request_time is used here, taking into account lat and the delay
// charged if the packet comes from the xbar.
- cpuSidePort->schedTimingResp(pkt, request_time);
+ cpuSidePort->schedTimingResp(pkt, request_time, true);
// If an outstanding request is in progress (we found an
// MSHR) this is set to null
}
// Reset the bus additional time as it is now accounted for
tgt_pkt->headerDelay = tgt_pkt->payloadDelay = 0;
- cpuSidePort->schedTimingResp(tgt_pkt, completion_time);
+ cpuSidePort->schedTimingResp(tgt_pkt, completion_time, true);
break;
case MSHR::Target::FromPrefetcher:
// queue the packet in the response queue to be sent out after
// the static latency has passed
- port.schedTimingResp(pkt, response_time);
+ port.schedTimingResp(pkt, response_time, true);
} else {
// @todo the packet is going to be deleted, and the DRAMPacket
// is still having a pointer to it
* @param pkt Packet to send
* @param when Absolute time (in ticks) to send packet
*/
- void schedTimingResp(PacketPtr pkt, Tick when)
- { respQueue.schedSendTiming(pkt, when); }
+ void schedTimingResp(PacketPtr pkt, Tick when, bool force_order = false)
+ { respQueue.schedSendTiming(pkt, when, force_order); }
/** Check the list of buffered packets against the supplied
* functional request. */