mem: Add tryTiming suppport to CommMonitor
authorSascha Bischoff <sascha.bischoff@arm.com>
Wed, 14 Nov 2018 16:31:53 +0000 (16:31 +0000)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Tue, 22 Jan 2019 09:16:50 +0000 (09:16 +0000)
The CommMonitor did not support tryTiming, which resulted in gem5
panicing if the CommMonitor was used.

With this change, we update the CommMonitor pass through the
tryTiming() calls.

Change-Id: I86810170e5e10a0c5d63af76fc4a6ab70710d2fb
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/15736
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>

src/mem/comm_monitor.cc
src/mem/comm_monitor.hh

index 354f66092e0afcd3122b5b460e4919bb49bd5d69..223d1cc9f6738c1c4129fa7bbbc7baddb65ea9e5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013, 2015 ARM Limited
+ * Copyright (c) 2012-2013, 2015, 2018 ARM Limited
  * Copyright (c) 2016 Google Inc.
  * Copyright (c) 2017, Centre National de la Recherche Scientifique
  * All rights reserved.
@@ -374,6 +374,12 @@ CommMonitor::recvRespRetry()
     masterPort.sendRetryResp();
 }
 
+bool
+CommMonitor::tryTiming(PacketPtr pkt)
+{
+    return masterPort.tryTiming(pkt);
+}
+
 void
 CommMonitor::recvRangeChange()
 {
index d27594d232f0f158dde263c0b2a0566892ebbf1d..dac71185c7879d805ecf37f31e07d2e04cbdd392 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012-2013, 2015 ARM Limited
+ * Copyright (c) 2012-2013, 2015, 2018 ARM Limited
  * Copyright (c) 2016 Google Inc.
  * Copyright (c) 2017, Centre National de la Recherche Scientifique
  * All rights reserved.
@@ -232,6 +232,11 @@ class CommMonitor : public MemObject
             mon.recvRespRetry();
         }
 
+        bool tryTiming(PacketPtr pkt)
+        {
+            return mon.tryTiming(pkt);
+        }
+
       private:
 
         CommMonitor& mon;
@@ -269,6 +274,8 @@ class CommMonitor : public MemObject
 
     void recvRangeChange();
 
+    bool tryTiming(PacketPtr pkt);
+
     /** Stats declarations, all in a struct for convenience. */
     struct MonitorStats
     {