PacketQueue: Allow queuing in the same tick as desired send tick
authorAndreas Hansson <andreas.hansson@arm.com>
Tue, 21 Aug 2012 09:49:24 +0000 (05:49 -0400)
committerAndreas Hansson <andreas.hansson@arm.com>
Tue, 21 Aug 2012 09:49:24 +0000 (05:49 -0400)
This patch allows packets to be enqueued in the same tick as they are
intended to be sent. This does not imply they actually are sent that
tick, although that is possible.

This change is useful for module that use the queued ports primarly to
avoid handling the flow control involved in sending and retrying
packets.

src/mem/packet_queue.cc

index 77fba8883d98fcbc6add66e3050e807ba172b973..37aa2dcdabf04d4356f889a0297b5029652be8dc 100644 (file)
@@ -106,7 +106,8 @@ PacketQueue::schedSendEvent(Tick when)
 void
 PacketQueue::schedSendTiming(PacketPtr pkt, Tick when, bool send_as_snoop)
 {
-    assert(when > curTick());
+    // we can still send a packet before the end of this tick
+    assert(when >= curTick());
 
     // nothing on the list, or earlier than current front element,
     // schedule an event