summaryrefslogtreecommitdiff
path: root/src/mem/cache/cache_impl.hh
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2007-07-26 17:04:16 -0700
committerSteve Reinhardt <stever@eecs.umich.edu>2007-07-26 17:04:16 -0700
commitf1b5c8fb57ee656df3a1b9d021de723279f66b2f (patch)
treef2aef894047e87bf945e244476babc5de36874d6 /src/mem/cache/cache_impl.hh
parent58250b8e5fd8aba9ed99b7aff6ce67b05b379fa0 (diff)
downloadgem5-f1b5c8fb57ee656df3a1b9d021de723279f66b2f.tar.xz
Continue snooping after a writeback is encountered.
--HG-- extra : convert_revision : 8411338a6c0fdd7072dd32bdffacdace62d5de90
Diffstat (limited to 'src/mem/cache/cache_impl.hh')
-rw-r--r--src/mem/cache/cache_impl.hh8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/mem/cache/cache_impl.hh b/src/mem/cache/cache_impl.hh
index fa2f45632..6db40b609 100644
--- a/src/mem/cache/cache_impl.hh
+++ b/src/mem/cache/cache_impl.hh
@@ -1064,7 +1064,13 @@ Cache<TagStore>::snoopTiming(PacketPtr pkt)
// Invalidation trumps our writeback... discard here
markInService(mshr);
}
- return;
+
+ // If this was a shared writeback, there may still be
+ // other shared copies above that require invalidation.
+ // We could be more selective and return here if the
+ // request is non-exclusive or if the writeback is
+ // exclusive.
+ break;
}
}