From f662b8aaacba60632e69da11cf7fc0deba958604 Mon Sep 17 00:00:00 2001 From: Javier Bueno Date: Tue, 2 Apr 2019 23:43:28 +0200 Subject: [PATCH] mem-cache: ISB prefetcher was triggering an assertion An assertion ignored the case when an entry of the SP table had been invalidated. Change-Id: I5bf04e7a0979300b0f41f680c371f6397d4cbf3f Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/17734 Reviewed-by: Daniel Carvalho Maintainer: Nikos Nikoleris --- src/mem/cache/prefetch/irregular_stream_buffer.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mem/cache/prefetch/irregular_stream_buffer.cc b/src/mem/cache/prefetch/irregular_stream_buffer.cc index 45aba0b32..345fe7060 100644 --- a/src/mem/cache/prefetch/irregular_stream_buffer.cc +++ b/src/mem/cache/prefetch/irregular_stream_buffer.cc @@ -147,7 +147,10 @@ IrregularStreamBufferPrefetcher::calculatePrefetch(const PrefetchInfo &pfi, Addr sp_index = mapping.address % prefetchCandidatesPerEntry; AddressMappingEntry *sp_am = spAddressMappingCache.findEntry(sp_address, is_secure); - assert(sp_am != nullptr); + if (sp_am == nullptr) { + // The entry has been evicted, can not generate prefetches + return; + } for (unsigned d = 1; d <= degree && (sp_index + d) < prefetchCandidatesPerEntry; d += 1) -- 2.30.2