diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2013-03-26 14:46:46 -0400 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2013-03-26 14:46:46 -0400 |
commit | 362f6f1a16a68a99c962628bcda00c7c576f935c (patch) | |
tree | a3df8a6d05340a65d190fcf166091b3f1aed4ae6 /src/mem/bus.hh | |
parent | 2123176684e3967912126125c65319dffdfa7467 (diff) | |
download | gem5-362f6f1a16a68a99c962628bcda00c7c576f935c.tar.xz |
mem: Introduce a variable for the retrying port
This patch introduces a variable to keep track of the retrying port
instead of relying on it being the front of the retryList.
Besides the improvement in readability, this patch is a step towards
separating out the two cases where a port is waiting for the bus to be
free, and where the forwarding did not succeed and the bus is waiting
for a retry to pass on to the original initiator of the transaction.
The changes made are currently such that the regressions are not
affected. This is ensured by always prioritizing the currently
retrying port and putting it back at the front of the retry list.
Diffstat (limited to 'src/mem/bus.hh')
-rw-r--r-- | src/mem/bus.hh | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mem/bus.hh b/src/mem/bus.hh index 705a3a999..2cd21ff85 100644 --- a/src/mem/bus.hh +++ b/src/mem/bus.hh @@ -212,6 +212,14 @@ class BaseBus : public MemObject std::deque<PortClass*> retryList; /** + * Port that we are currently in the process of telling to + * retry a previously failed attempt to perform a timing + * transaction. This is a valid port when in the retry state, + * and NULL when in busy or idle. + */ + PortClass* retryingPort; + + /** * Release the bus layer after being occupied and return to an * idle state where we proceed to send a retry to any * potential waiting port, or drain if asked to do so. |