[gem5-dev] Change in gem5/gem5[master]: cpu: Fix rescheduling of progress check events

2019-05-30 Thread Tiago Mück (Gerrit)
Tiago Mück has submitted this change and it was merged. (  
https://gem5-review.googlesource.com/c/public/gem5/+/18793 )


Change subject: cpu: Fix rescheduling of progress check events
..

cpu: Fix rescheduling of progress check events

noRequestEvent needs to be rescheduled on recvRetry, otherwise the timeout
may be triggered even though packets are being eventually sent.
noResponseEvent scheduling is also fixed. This timeout should not be
active when we are not expecting a response.

Change-Id: If9edb75b5b803caf9f99bf41ea3948b15a3f3d71
Signed-off-by: Tiago Muck 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/18793
Reviewed-by: Andreas Sandberg 
Maintainer: Andreas Sandberg 
Tested-by: kokoro 
---
M src/cpu/testers/memtest/memtest.cc
1 file changed, 12 insertions(+), 4 deletions(-)

Approvals:
  Andreas Sandberg: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/cpu/testers/memtest/memtest.cc  
b/src/cpu/testers/memtest/memtest.cc

index 93a6ac6..742cf3b 100644
--- a/src/cpu/testers/memtest/memtest.cc
+++ b/src/cpu/testers/memtest/memtest.cc
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 ARM Limited
+ * Copyright (c) 2015, 2019 ARM Limited
  * All rights reserved
  *
  * The license below extends only to copyright in the software and shall
@@ -120,7 +120,6 @@
 // kick things into action
 schedule(tickEvent, curTick());
 schedule(noRequestEvent, clockEdge(progressCheck));
-schedule(noResponseEvent, clockEdge(progressCheck));
 }

 Port &
@@ -189,8 +188,12 @@
 // the packet will delete the data
 delete pkt;

-// finally shift the response timeout forward
-reschedule(noResponseEvent, clockEdge(progressCheck), true);
+// finally shift the response timeout forward if we are still
+// expecting responses; deschedule it otherwise
+if (outstandingAddrs.size() != 0)
+reschedule(noResponseEvent, clockEdge(progressCheck));
+else if (noResponseEvent.scheduled())
+deschedule(noResponseEvent);
 }

 void
@@ -303,6 +306,10 @@
 } else {
 DPRINTF(MemTest, "Waiting for retry\n");
 }
+
+// Schedule noResponseEvent now if we are expecting a response
+if (!noResponseEvent.scheduled() && (outstandingAddrs.size() != 0))
+schedule(noResponseEvent, clockEdge(progressCheck));
 }

 void
@@ -327,6 +334,7 @@
 retryPkt = nullptr;
 // kick things into action again
 schedule(tickEvent, clockEdge(interval));
+reschedule(noRequestEvent, clockEdge(progressCheck), true);
 }
 }


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/18793
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: If9edb75b5b803caf9f99bf41ea3948b15a3f3d71
Gerrit-Change-Number: 18793
Gerrit-PatchSet: 3
Gerrit-Owner: Tiago Mück 
Gerrit-Reviewer: Andreas Sandberg 
Gerrit-Reviewer: Tiago Mück 
Gerrit-Reviewer: kokoro 
Gerrit-MessageType: merged
___
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

[gem5-dev] Change in gem5/gem5[master]: cpu: Fix rescheduling of progress check events

2019-05-29 Thread Tiago Mück (Gerrit)
Tiago Mück has uploaded a new patch set (#2). (  
https://gem5-review.googlesource.com/c/public/gem5/+/18793 )


Change subject: cpu: Fix rescheduling of progress check events
..

cpu: Fix rescheduling of progress check events

noRequestEvent needs to be rescheduled on recvRetry, otherwise the timeout
may be triggered even though packets are being eventually sent.
noResponseEvent scheduling is also fixed. This timeout should not be
active when we are not expecting a response.

Change-Id: If9edb75b5b803caf9f99bf41ea3948b15a3f3d71
Signed-off-by: Tiago Muck 
---
M src/cpu/testers/memtest/memtest.cc
1 file changed, 12 insertions(+), 4 deletions(-)


--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/18793
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: If9edb75b5b803caf9f99bf41ea3948b15a3f3d71
Gerrit-Change-Number: 18793
Gerrit-PatchSet: 2
Gerrit-Owner: Tiago Mück 
Gerrit-MessageType: newpatchset
___
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev