# HG changeset patch
# User Brad Beckmann <[email protected]>
# Date 1260657436 28800
# Node ID cae9a08951751d7556ee4cc37a29824e23848b65
# Parent  20d225368dfe44492bde8b187f898311fb9b924e
ruby: sequencer deadlock check fix
Fixed the sequencer deadlock check m5 event

diff -r 20d225368dfe -r cae9a0895175 src/mem/ruby/eventqueue/RubyEventQueue.hh
--- a/src/mem/ruby/eventqueue/RubyEventQueue.hh Sat Dec 12 14:37:16 2009 -0800
+++ b/src/mem/ruby/eventqueue/RubyEventQueue.hh Sat Dec 12 14:37:16 2009 -0800
@@ -79,6 +79,7 @@
   // Public Methods
 
   Time getTime() const { return curTick/m_clock; }
+  Tick getClock() const { return m_clock; }
   void scheduleEvent(Consumer* consumer, Time timeDelta);
   void scheduleEventAbsolute(Consumer* consumer, Time timeAbs);
   void print(ostream& out) const;
diff -r 20d225368dfe -r cae9a0895175 src/mem/ruby/system/Sequencer.cc
--- a/src/mem/ruby/system/Sequencer.cc  Sat Dec 12 14:37:16 2009 -0800
+++ b/src/mem/ruby/system/Sequencer.cc  Sat Dec 12 14:37:16 2009 -0800
@@ -128,7 +128,8 @@
   assert(m_outstanding_count == total_outstanding);
 
   if (m_outstanding_count > 0) { // If there are still outstanding requests, 
keep checking
-    schedule(deadlockCheckEvent, m_deadlock_threshold);
+    schedule(deadlockCheckEvent, 
+             (m_deadlock_threshold * g_eventQueue_ptr->getClock()) + curTick);
     //g_eventQueue_ptr->scheduleEvent(this, m_deadlock_threshold);
   } // else {
 //     m_deadlock_check_scheduled = false;

_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to