diff options
Diffstat (limited to 'src/mem/ruby')
-rw-r--r-- | src/mem/ruby/system/DMASequencer.cc | 18 | ||||
-rw-r--r-- | src/mem/ruby/system/RubyPort.cc | 35 | ||||
-rw-r--r-- | src/mem/ruby/system/RubyPort.hh | 2 |
3 files changed, 4 insertions, 51 deletions
diff --git a/src/mem/ruby/system/DMASequencer.cc b/src/mem/ruby/system/DMASequencer.cc index b10538024..0dd28d91c 100644 --- a/src/mem/ruby/system/DMASequencer.cc +++ b/src/mem/ruby/system/DMASequencer.cc @@ -161,15 +161,6 @@ DMASequencer::testDrainComplete() } unsigned int -DMASequencer::getChildDrainCount(DrainManager *dm) -{ - int count = 0; - count += slave_port.drain(dm); - DPRINTF(Config, "count after slave port check %d\n", count); - return count; -} - -unsigned int DMASequencer::drain(DrainManager *dm) { if (isDeadlockEventScheduled()) { @@ -181,11 +172,6 @@ DMASequencer::drain(DrainManager *dm) DPRINTF(Config, "outstanding count %d\n", outstandingCount()); bool need_drain = outstandingCount() > 0; - // - // Also, get the number of child ports that will also need to clear - // their buffered requests before they call drainManager->signalDrainDone() - // - unsigned int child_drain_count = getChildDrainCount(dm); // Set status if (need_drain) { @@ -193,12 +179,12 @@ DMASequencer::drain(DrainManager *dm) DPRINTF(Drain, "DMASequencer not drained\n"); setDrainState(DrainState::Draining); - return child_drain_count + 1; + return 1; } drainManager = NULL; setDrainState(DrainState::Drained); - return child_drain_count; + return 0; } void diff --git a/src/mem/ruby/system/RubyPort.cc b/src/mem/ruby/system/RubyPort.cc index b6aa871b3..5818056e9 100644 --- a/src/mem/ruby/system/RubyPort.cc +++ b/src/mem/ruby/system/RubyPort.cc @@ -400,31 +400,6 @@ RubyPort::testDrainComplete() } unsigned int -RubyPort::getChildDrainCount(DrainManager *dm) -{ - int count = 0; - - if (memMasterPort.isConnected()) { - count += memMasterPort.drain(dm); - DPRINTF(Config, "count after pio check %d\n", count); - } - - for (CpuPortIter p = slave_ports.begin(); p != slave_ports.end(); ++p) { - count += (*p)->drain(dm); - DPRINTF(Config, "count after slave port check %d\n", count); - } - - for (std::vector<PioMasterPort *>::iterator p = master_ports.begin(); - p != master_ports.end(); ++p) { - count += (*p)->drain(dm); - DPRINTF(Config, "count after master port check %d\n", count); - } - - DPRINTF(Config, "final count %d\n", count); - return count; -} - -unsigned int RubyPort::drain(DrainManager *dm) { if (isDeadlockEventScheduled()) { @@ -438,24 +413,18 @@ RubyPort::drain(DrainManager *dm) DPRINTF(Config, "outstanding count %d\n", outstandingCount()); bool need_drain = outstandingCount() > 0; - // - // Also, get the number of child ports that will also need to clear - // their buffered requests before they call drainManager->signalDrainDone() - // - unsigned int child_drain_count = getChildDrainCount(dm); - // Set status if (need_drain) { drainManager = dm; DPRINTF(Drain, "RubyPort not drained\n"); setDrainState(DrainState::Draining); - return child_drain_count + 1; + return 1; } drainManager = NULL; setDrainState(DrainState::Drained); - return child_drain_count; + return 0; } void diff --git a/src/mem/ruby/system/RubyPort.hh b/src/mem/ruby/system/RubyPort.hh index e68af6dab..ff1b2af04 100644 --- a/src/mem/ruby/system/RubyPort.hh +++ b/src/mem/ruby/system/RubyPort.hh @@ -193,8 +193,6 @@ class RubyPort : public MemObject retryList.push_back(port); } - unsigned int getChildDrainCount(DrainManager *dm); - PioMasterPort pioMasterPort; PioSlavePort pioSlavePort; MemMasterPort memMasterPort; |