From a33b4931d7270e0497fdc882f901e0a9fda5edf1 Mon Sep 17 00:00:00 2001 From: Nathanael Premillieu Date: Fri, 27 Jan 2023 15:11:19 +0100 Subject: [PATCH] mem-cache: schedule already ready pf next cycle Fix a bug where a ready prefetch request was not sent directly because the schedMemSideSendEvent was not called with the right time. This fix mimics what is done in recvTimingResp. Change-Id: Ib11f8003ca1b006d976c8cc8ea541434b8902beb Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67473 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro Reviewed-by: Bobby Bruce --- src/mem/cache/base.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mem/cache/base.cc b/src/mem/cache/base.cc index cf6c9fe226..639d02610e 100644 --- a/src/mem/cache/base.cc +++ b/src/mem/cache/base.cc @@ -464,7 +464,8 @@ BaseCache::recvTimingReq(PacketPtr pkt) if (prefetcher) { // track time of availability of next prefetch, if any - Tick next_pf_time = prefetcher->nextPrefetchReadyTime(); + Tick next_pf_time = std::max( + prefetcher->nextPrefetchReadyTime(), clockEdge()); if (next_pf_time != MaxTick) { schedMemSideSendEvent(next_pf_time); }