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 <hussein.elnaw...@gmail.com>
Gerrit-MessageType: newchange
_______________________________________________
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to