[gem5-dev] Change in gem5/gem5[develop]: mem-ruby: Checkpoint from MOESI_hammer Ruby hangs

2020-03-26 Thread Hussein Elnawawy (Gerrit)
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(_req, data, success, mach, externalHit,
 initialRequestTime, forwardRequestTime,
 firstResponseTime);
 } else {
 // handle read request
 assert(!ruby_request);
+markRemoved();
+ruby_request = false;
 aliased_loads++;
 hitCallback(_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(_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

[gem5-dev] Change in gem5/gem5[develop]: mem-ruby: Checkpoint from MOESI_hammer Ruby hangs

2020-03-12 Thread Hussein Elnawawy (Gerrit)
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

2020-02-21 Thread Hussein Elnawawy (Gerrit)
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(_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(_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(_req, data, true, mach, externalHit,
-initialRequestTime, forwardRequestTime,
-firstResponseTime);
 seq_req_list.pop_front();
 markRemoved();
 ruby_request = false;
+hitCallback(_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