Ruby Sequencer: Schedule deadlock check event at correct time
authorNilay Vaish <nilay@cs.wisc.edu>
Tue, 22 May 2012 16:32:57 +0000 (11:32 -0500)
committerNilay Vaish <nilay@cs.wisc.edu>
Tue, 22 May 2012 16:32:57 +0000 (11:32 -0500)
The scheduling of the deadlock check event was being done incorrectly as the
clock was not being multiplied, so as to convert the time into ticks. This
patch removes that bug.

src/mem/ruby/system/Sequencer.cc

index 4109a06fd8bbe60fb63a7e79823cf1a0702dad01..de7c8154b9d13bdc78958e940e5fdc50d02ff89d 100644 (file)
@@ -220,7 +220,9 @@ Sequencer::insertRequest(PacketPtr pkt, RubyRequestType request_type)
 
     // See if we should schedule a deadlock check
     if (deadlockCheckEvent.scheduled() == false) {
-        schedule(deadlockCheckEvent, m_deadlock_threshold + curTick());
+        schedule(deadlockCheckEvent,
+                 m_deadlock_threshold * g_eventQueue_ptr->getClock()
+                 + curTick());
     }
 
     Address line_addr(pkt->getAddr());