[gem5-dev] Change in gem5/gem5[develop]: mem-ruby: Checkpoint from MOESI_hammer Ruby hangs
Hussein Elnawawy has uploaded this change for review. ( 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 Modification in Sequencer.cc reordered "markRemoved()" with respect to "hitCallback()" inside both "readCallback()" and "writeCallback()". It should be called before "hitCallback()" not after it. The reason is that "hitCallback()" checks if draining is complete or not at the very end of the function by checking for "m_outstanding_count" count. But since the request is not subtracted from "m_outstanding_count" yet (markRemoved() is responsible for that subtraction), it continues to think that the draining is not complete yet. Reported by: Timothy Hayes Jira: https://gem5.atlassian.net/browse/GEM5-331 Change-Id: I14c34be79843b172ae994ab1792fe4ce6cf5cf6e --- M src/mem/ruby/system/Sequencer.cc 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/mem/ruby/system/Sequencer.cc b/src/mem/ruby/system/Sequencer.cc index a90523e..107d2dd 100644 --- a/src/mem/ruby/system/Sequencer.cc +++ b/src/mem/ruby/system/Sequencer.cc @@ -360,20 +360,23 @@ } else { aliased_stores++; } +seq_req_list.pop_front(); +markRemoved(); +ruby_request = false; hitCallback(&seq_req, data, success, mach, externalHit, initialRequestTime, forwardRequestTime, firstResponseTime); } else { // handle read request assert(!ruby_request); +seq_req_list.pop_front(); +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 +424,12 @@ initialRequestTime, forwardRequestTime, firstResponseTime); } -hitCallback(&seq_req, data, true, mach, externalHit, -initialRequestTime, forwardRequestTime, -firstResponseTime); seq_req_list.pop_front(); markRemoved(); ruby_request = false; +hitCallback(&seq_req, data, true, mach, externalHit, +initialRequestTime, forwardRequestTime, +firstResponseTime); } // 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: 1 Gerrit-Owner: Hussein Elnawawy Gerrit-MessageType: newchange ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[develop]: mem-ruby: Checkpoint from MOESI_hammer Ruby hangs
Hussein Elnawawy has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/26663 ) 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(). The reason is that hitCallback() is responsible for checking if draining is complete based on the value of "m_outstanding_count" which gets decremented in markRemoved(). Reported by: Timothy Hayes Jira: https://gem5.atlassian.net/browse/GEM5-331 Change-Id: Ibc8df80f0d5feedf824925b216c91e9289c22c77 --- 1 file changed, 0 insertions(+), 0 deletions(-) -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/26663 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: Ibc8df80f0d5feedf824925b216c91e9289c22c77 Gerrit-Change-Number: 26663 Gerrit-PatchSet: 1 Gerrit-Owner: Hussein Elnawawy Gerrit-MessageType: newchange ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev
[gem5-dev] Change in gem5/gem5[develop]: mem-ruby: Checkpoint from MOESI_hammer Ruby hangs
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 Reviewed-by: John Alsop Maintainer: Bradford Beckmann Tested-by: kokoro --- 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 Gerrit-Reviewer: Bradford Beckmann Gerrit-Reviewer: Giacomo Travaglini Gerrit-Reviewer: Hussein Elnawawy Gerrit-Reviewer: Jason Lowe-Power Gerrit-Reviewer: John Alsop Gerrit-Reviewer: Nikos Nikoleris Gerrit-Reviewer: Timothy Hayes Gerrit-Reviewer: Tuan Ta Gerrit-Reviewer: kokoro Gerrit-CC: Ciro Santilli Gerrit-MessageType: merged ___ gem5-dev mailing list gem5-dev@gem5.org http://m5sim.org/mailman/listinfo/gem5-dev