mem: Determine if a packet queue forces ordering at construction
A packet queue is typically used to hold on to packets that are schedules to be sent in the future or when they need to queue behind younger packets that have been sent out yet. Due to memory order requirements, some MemObjects need to maintain the order for packet (mostly responses) that reference the same cache block. Prior to this patch the ordering requirements where determined when the packet was scheduled to be sent. This patch moves the parameter to the constructor. Change-Id: Ieb4d94e86bc7514f5036b313ec23ea47dd653164 Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-on: https://gem5-review.googlesource.com/c/15555 Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br> Reviewed-by: Jason Lowe-Power <jason@lowepower.com> Maintainer: Jason Lowe-Power <jason@lowepower.com>
This commit is contained in:
@@ -938,7 +938,7 @@ DRAMCtrl::accessAndRespond(PacketPtr pkt, Tick static_latency)
|
||||
|
||||
// queue the packet in the response queue to be sent out after
|
||||
// the static latency has passed
|
||||
port.schedTimingResp(pkt, response_time, true);
|
||||
port.schedTimingResp(pkt, response_time);
|
||||
} else {
|
||||
// @todo the packet is going to be deleted, and the DRAMPacket
|
||||
// is still having a pointer to it
|
||||
@@ -2924,7 +2924,7 @@ DRAMCtrl::drainResume()
|
||||
}
|
||||
|
||||
DRAMCtrl::MemoryPort::MemoryPort(const std::string& name, DRAMCtrl& _memory)
|
||||
: QueuedSlavePort(name, &_memory, queue), queue(_memory, *this),
|
||||
: QueuedSlavePort(name, &_memory, queue), queue(_memory, *this, true),
|
||||
memory(_memory)
|
||||
{ }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user