summaryrefslogtreecommitdiff
path: root/src/mem/packet_queue.cc
diff options
context:
space:
mode:
authorBrad Beckmann <Brad.Beckmann@amd.com>2015-07-20 09:15:18 -0500
committerBrad Beckmann <Brad.Beckmann@amd.com>2015-07-20 09:15:18 -0500
commitaef8d851bde80f0148ad234d3b216461d364dba3 (patch)
tree515173d9d180adb9115889b3d86bdb941cd26b63 /src/mem/packet_queue.cc
parent7678ddeb46afc24488cfad776350b586bb5d2b30 (diff)
downloadgem5-aef8d851bde80f0148ad234d3b216461d364dba3.tar.xz
mem: add boolean to disable PacketQueue's size sanity check
the sanity check, while generally useful for exposing memory system bugs, may be spurious with respect to GPU workloads, which may generate many more requests than typical CPU workloads. the large number of requests generated by the GPU may cause the req/resp queues to back up, thus queueing more than 100 packets.
Diffstat (limited to 'src/mem/packet_queue.cc')
-rw-r--r--src/mem/packet_queue.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mem/packet_queue.cc b/src/mem/packet_queue.cc
index a9fe29e86..ca8422f52 100644
--- a/src/mem/packet_queue.cc
+++ b/src/mem/packet_queue.cc
@@ -48,9 +48,10 @@
using namespace std;
-PacketQueue::PacketQueue(EventManager& _em, const std::string& _label)
- : em(_em), sendEvent(this), label(_label),
- waitingOnRetry(false)
+PacketQueue::PacketQueue(EventManager& _em, const std::string& _label,
+ bool disable_sanity_check)
+ : em(_em), sendEvent(this), _disableSanityCheck(disable_sanity_check),
+ label(_label), waitingOnRetry(false)
{
}
@@ -114,7 +115,7 @@ PacketQueue::schedSendTiming(PacketPtr pkt, Tick when, bool force_order)
// add a very basic sanity check on the port to ensure the
// invisible buffer is not growing beyond reasonable limits
- if (transmitList.size() > 100) {
+ if (!_disableSanityCheck && transmitList.size() > 100) {
panic("Packet queue %s has grown beyond 100 packets\n",
name());
}