mem-cache: Remove writebacks packet list
authorDaniel R. Carvalho <odanrc@yahoo.com.br>
Thu, 18 Apr 2019 13:53:21 +0000 (15:53 +0200)
committerDaniel Carvalho <odanrc@yahoo.com.br>
Wed, 8 May 2019 17:41:09 +0000 (17:41 +0000)
commitbf0a722acdd8247602e83720a5f81a0b69c76250
treea43034cd6ae6e69d35138f0b3a36e54980531e0b
parente54c7a68f8bae79bc3fabac2534ef5af14cda9ae
mem-cache: Remove writebacks packet list

Previously all atomic writebacks concerned a single block,
therefore, when a block was evicted, no other block would be
pending eviction. With sector tags (and compression),
however, a single replacement can generate many evictions.

This can cause problems, since a writeback that evicts a block
may evict blocks in the lower cache. If one of these conflict
with one of the blocks pending eviction in the higher level, the
snoop must inform it to the lower level. Since atomic mode does
not have a writebuffer, this kind of conflict wouldn't be noticed.

Therefore, instead of evicting multiple blocks at once, we
do it one by one.

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