changeset 409a2692b8e6 in /z/repo/m5
details: http://repo.m5sim.org/m5?cmd=changeset;node=409a2692b8e6
description:
MOESI_hammer: fixed dir bug counting received acks
diffstat:
src/mem/protocol/MOESI_hammer-dir.sm | 13 +++++++------
1 files changed, 7 insertions(+), 6 deletions(-)
diffs (30 lines):
diff -r d9afb18a5008 -r 409a2692b8e6 src/mem/protocol/MOESI_hammer-dir.sm
--- a/src/mem/protocol/MOESI_hammer-dir.sm Sun Feb 06 22:14:19 2011 -0800
+++ b/src/mem/protocol/MOESI_hammer-dir.sm Sun Feb 06 22:14:19 2011 -0800
@@ -581,7 +581,13 @@
// directory DMA requests must wait for acks from all LLC caches, so
// only decrement by 1.
//
- tbe.NumPendingMsgs := tbe.NumPendingMsgs - 1;
+ if ((in_msg.Type == CoherenceResponseType:DATA_SHARED) ||
+ (in_msg.Type == CoherenceResponseType:DATA) ||
+ (in_msg.Type == CoherenceResponseType:DATA_EXCLUSIVE)) {
+ tbe.NumPendingMsgs := tbe.NumPendingMsgs - 1;
+ } else {
+ tbe.NumPendingMsgs := tbe.NumPendingMsgs - in_msg.Acks;
+ }
DPRINTF(RubySlicc, "%d\n", tbe.NumPendingMsgs);
}
}
@@ -591,11 +597,6 @@
assert(is_valid(tbe));
assert(in_msg.Type == CoherenceResponseType:UNBLOCKS);
DPRINTF(RubySlicc, "%d\n", tbe.NumPendingMsgs);
- //
- // Note that cache data responses will have an ack count of 2. However,
- // directory DMA requests must wait for acks from all LLC caches, so
- // only decrement by 1.
- //
tbe.NumPendingMsgs := tbe.NumPendingMsgs - 1;
DPRINTF(RubySlicc, "%d\n", tbe.NumPendingMsgs);
}
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev