Hussein Elnawawy has submitted this change. (
https://gem5-review.googlesource.com/c/public/gem5/+/25683 )
Change subject: mem-ruby: Checkpoint from MOESI_hammer Ruby hangs
......................................................................
mem-ruby: Checkpoint from MOESI_hammer Ruby hangs
Fix MOESI_hammer checkpoint hanging.
The function markRemoved() should be called before hitCallback(),
not after it. The reason is that hitCallback() checks if draining is
complete based on the value of "m_outstanding_count". And since
markRemoved() is responsible for decrementing "m_outstanding_count",
hitCallback() does not see that there are no outstanding requests.
Reported by: Timothy Hayes
Jira: https://gem5.atlassian.net/browse/GEM5-331
Change-Id: I14c34be79843b172ae994ab1792fe4ce6cf5cf6e
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/25683
Reviewed-by: Timothy Hayes <timothy.ha...@arm.com>
Reviewed-by: John Alsop <johnathan.al...@amd.com>
Maintainer: Bradford Beckmann <brad.beckm...@amd.com>
Tested-by: kokoro <noreply+kok...@google.com>
---
M src/mem/ruby/system/Sequencer.cc
1 file changed, 6 insertions(+), 4 deletions(-)
Approvals:
John Alsop: Looks good to me, but someone else must approve
Timothy Hayes: Looks good to me, approved
Bradford Beckmann: Looks good to me, approved
kokoro: Regressions pass
diff --git a/src/mem/ruby/system/Sequencer.cc
b/src/mem/ruby/system/Sequencer.cc
index a90523e..f815787 100644
--- a/src/mem/ruby/system/Sequencer.cc
+++ b/src/mem/ruby/system/Sequencer.cc
@@ -360,20 +360,22 @@
} else {
aliased_stores++;
}
+ markRemoved();
+ ruby_request = false;
hitCallback(&seq_req, data, success, mach, externalHit,
initialRequestTime, forwardRequestTime,
firstResponseTime);
} else {
// handle read request
assert(!ruby_request);
+ markRemoved();
+ ruby_request = false;
aliased_loads++;
hitCallback(&seq_req, data, true, mach, externalHit,
initialRequestTime, forwardRequestTime,
firstResponseTime);
}
seq_req_list.pop_front();
- markRemoved();
- ruby_request = false;
}
// free all outstanding requests corresponding to this address
@@ -421,12 +423,12 @@
initialRequestTime, forwardRequestTime,
firstResponseTime);
}
+ markRemoved();
+ ruby_request = false;
hitCallback(&seq_req, data, true, mach, externalHit,
initialRequestTime, forwardRequestTime,
firstResponseTime);
seq_req_list.pop_front();
- markRemoved();
- ruby_request = false;
}
// free all outstanding requests corresponding to this address
--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/25683
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I14c34be79843b172ae994ab1792fe4ce6cf5cf6e
Gerrit-Change-Number: 25683
Gerrit-PatchSet: 6
Gerrit-Owner: Hussein Elnawawy <hussein.elnaw...@gmail.com>
Gerrit-Reviewer: Bradford Beckmann <brad.beckm...@amd.com>
Gerrit-Reviewer: Giacomo Travaglini <giacomo.travagl...@arm.com>
Gerrit-Reviewer: Hussein Elnawawy <hussein.elnaw...@gmail.com>
Gerrit-Reviewer: Jason Lowe-Power <power...@gmail.com>
Gerrit-Reviewer: John Alsop <johnathan.al...@amd.com>
Gerrit-Reviewer: Nikos Nikoleris <nikos.nikole...@arm.com>
Gerrit-Reviewer: Timothy Hayes <timothy.ha...@arm.com>
Gerrit-Reviewer: Tuan Ta <q...@cornell.edu>
Gerrit-Reviewer: kokoro <noreply+kok...@google.com>
Gerrit-CC: Ciro Santilli <ciro.santi...@arm.com>
Gerrit-MessageType: merged
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev