changeset fb7fc9aca918 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=fb7fc9aca918
description:
Port: Only indicate that a SimpleTimingPort is drained if its send
event is
not scheduled, as well as the transmit list being empty.
diffstat:
src/mem/cache/cache_impl.hh | 2 +-
src/mem/tport.cc | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diffs (33 lines):
diff -r 3bd51d6ac9ef -r fb7fc9aca918 src/mem/cache/cache_impl.hh
--- a/src/mem/cache/cache_impl.hh Thu Jul 22 18:52:02 2010 +0100
+++ b/src/mem/cache/cache_impl.hh Thu Jul 22 18:54:37 2010 +0100
@@ -1569,7 +1569,7 @@
schedule(sendEvent, std::max(nextReady, curTick + 1));
} else {
// no more to send right now: if we're draining, we may be done
- if (drainEvent) {
+ if (drainEvent && !sendEvent->scheduled()) {
drainEvent->process();
drainEvent = NULL;
}
diff -r 3bd51d6ac9ef -r fb7fc9aca918 src/mem/tport.cc
--- a/src/mem/tport.cc Thu Jul 22 18:52:02 2010 +0100
+++ b/src/mem/tport.cc Thu Jul 22 18:54:37 2010 +0100
@@ -155,7 +155,7 @@
schedule(sendEvent, time <= curTick ? curTick+1 : time);
}
- if (transmitList.empty() && drainEvent) {
+ if (transmitList.empty() && drainEvent && !sendEvent->scheduled()) {
drainEvent->process();
drainEvent = NULL;
}
@@ -195,7 +195,7 @@
unsigned int
SimpleTimingPort::drain(Event *de)
{
- if (transmitList.size() == 0)
+ if (transmitList.size() == 0 && !sendEvent->scheduled())
return 0;
drainEvent = de;
return 1;
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev