diff --git a/src/mem/packet_queue.hh b/src/mem/packet_queue.hh --- a/src/mem/packet_queue.hh +++ b/src/mem/packet_queue.hh @@ -89,6 +89,8 @@ /** Event used to call processSendEvent. */ EventWrapper sendEvent; + bool disableSanityCheck; + protected: /** Label to use for print request packets label stack. */ @@ -124,7 +126,8 @@ * @param _em Event manager used for scheduling this queue * @param _label Label to push on the label stack for print request packets */ - PacketQueue(EventManager& _em, const std::string& _label); + PacketQueue(EventManager& _em, const std::string& _label, + bool _disableSanityCheck=false); /** * Virtual desctructor since the class may be used as a base class. # Node ID 9c34365138085dec84eee75ce57cf70701e66e67 # Parent e9837c2c560433e447715b329ce1d3bfc2783fec diff --git a/src/mem/packet_queue.cc b/src/mem/packet_queue.cc --- 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 _disableSanityCheck) + : em(_em), sendEvent(this), disableSanityCheck(_disableSanityCheck), + label(_label), waitingOnRetry(false) { } @@ -114,8 +115,8 @@ // add a very basic sanity check on the port to ensure the // invisible buffer is not growing beyond reasonable limits - if (transmitList.size() > 100) { - panic("Packet queue %s has grown beyond 100 packets\n", + if (transmitList.size() > 100 && !disableSanityCheck) { + panic("Packet queue %s has grown beyond 10000 packets\n", name()); }