mem-cache: prevent prefetcher from saturating the write buffer
authorTommaso Marinelli <tommarin@ucm.es>
Sat, 30 May 2020 04:45:15 +0000 (06:45 +0200)
committerTommaso Marinelli <tommarin@ucm.es>
Thu, 4 Jun 2020 22:35:15 +0000 (22:35 +0000)
commit872cb227fdc0b4d60acc7840889d567a6936b6e1
treee32171bfae8b0d70084db4f7b3c2bbee43d67d8d
parent1d081f505466033177ca04c68ddc27d28aea9dc5
mem-cache: prevent prefetcher from saturating the write buffer

When the write buffer is full, it still has space to store an additional
number of entries (reserve) equal to the number of MSHRs so that if any
of them requires a writeback this can be handled. Even if the slave port
is blocked, a prefetcher can generate new MSHR entries that may lead to
additional writebacks and eventually saturate the reserve space. This is
solved by checking if the cache is blocked for accesses before
prefetching data.

Change-Id: Iaad04dd6786a09eab7afae4a53d1b1299c341f33
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/29615
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Maintainer: Nikos Nikoleris <nikos.nikoleris@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/mem/cache/base.cc