From: Sascha Bischoff Date: Wed, 14 Nov 2018 16:31:53 +0000 (+0000) Subject: mem: Add tryTiming suppport to CommMonitor X-Git-Tag: v19.0.0.0~1246 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a0649ee1e90e6c71f74425457c381e8b6c5d0d43;p=gem5.git mem: Add tryTiming suppport to CommMonitor 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 Reviewed-by: Andreas Sandberg Reviewed-on: https://gem5-review.googlesource.com/c/15736 Reviewed-by: Jason Lowe-Power Maintainer: Nikos Nikoleris Maintainer: Jason Lowe-Power --- diff --git a/src/mem/comm_monitor.cc b/src/mem/comm_monitor.cc index 354f66092..223d1cc9f 100644 --- a/src/mem/comm_monitor.cc +++ b/src/mem/comm_monitor.cc @@ -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() { diff --git a/src/mem/comm_monitor.hh b/src/mem/comm_monitor.hh index d27594d23..dac71185c 100644 --- a/src/mem/comm_monitor.hh +++ b/src/mem/comm_monitor.hh @@ -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 {