# 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