diff options
author | Ron Dreslinski <rdreslin@umich.edu> | 2006-10-07 12:20:29 -0400 |
---|---|---|
committer | Ron Dreslinski <rdreslin@umich.edu> | 2006-10-07 12:20:29 -0400 |
commit | fdaed2c7aeb0f2a34c6ef60cc7de7db8d8db62b3 (patch) | |
tree | c0e1f10a67c548e199aba82bf54bbace4c6dc38b | |
parent | df3014a7262c6f1311217eeeff31017f5d46f216 (diff) | |
download | gem5-fdaed2c7aeb0f2a34c6ef60cc7de7db8d8db62b3.tar.xz |
No need to keep trying to request the data bus if we are already waiting.
--HG--
extra : convert_revision : dbaad52ed8d0841dc9224661e3df0d8ef4989aa3
-rw-r--r-- | src/mem/cache/base_cache.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mem/cache/base_cache.cc b/src/mem/cache/base_cache.cc index fd97ea3aa..4b62073d8 100644 --- a/src/mem/cache/base_cache.cc +++ b/src/mem/cache/base_cache.cc @@ -211,7 +211,11 @@ BaseCache::CacheEvent::process() //Know the packet to send pkt->result = Packet::Success; pkt->makeTimingResponse(); - if (!cachePort->sendTiming(pkt)) { + if (!drainList.empty()) { + //Already blocked waiting for bus, just append + cachePort->drainList.push_back(pkt); + } + else if (!cachePort->sendTiming(pkt)) { //It failed, save it to list of drain events cachePort->drainList.push_back(pkt); } |