gem5/src/mem/cache
Geoffrey Blake b404ffde60 cache: Fix handling of LL/SC requests under contention
If a set of LL/SC requests contend on the same cache block we
can get into a situation where CPUs will deadlock if they expect
a failed SC to supply them data.  This case happens where 3 or
more cores are contending for a cache block using LL/SC and the system
is configured where 2 cores are connected to a local bus and the
third is connected to a remote bus.  If a core on the local bus
sends an SCUpgrade and the core on the remote bus sends and SCUpgrade
they will race to see who will win the SC access.  In the meantime
if the other core appends a read to one of the SCUpgrades it will expect
to be supplied data by that SCUpgrade transaction.  If it happens that
the SCUpgrade that was picked to supply the data is failed, it will
drop the appended request for data and never respond, leaving the requesting
core to deadlock.  This patch makes all SC's behave as normal stores to
prevent this case but still makes sure to check whether it can perform
the update.
2014-09-03 07:42:31 -04:00
..
prefetch arch: Cleanup unused ISA traits constants 2014-09-03 07:42:21 -04:00
tags mem: Properly set cache block status fields on writebacks 2014-08-13 06:57:24 -04:00
base.cc mem: refactor LRU cache tags and add random replacement tags 2014-07-28 12:23:23 -04:00
base.hh mem: Add support for a security bit in the memory system 2014-01-24 15:29:30 -06:00
BaseCache.py Cache: Collect very basic stats on tag and data accesses 2014-01-24 15:29:30 -06:00
blk.cc mem: Add support for a security bit in the memory system 2014-01-24 15:29:30 -06:00
blk.hh mem: Don't print out the data of a cache block 2014-04-01 14:24:36 -05:00
cache.cc mem: refactor LRU cache tags and add random replacement tags 2014-07-28 12:23:23 -04:00
cache.hh mem: Remove redundant findVictim() input argument 2014-01-28 18:00:50 -06:00
cache_impl.hh cache: Fix handling of LL/SC requests under contention 2014-09-03 07:42:31 -04:00
mshr.cc mem: Add support for a security bit in the memory system 2014-01-24 15:29:30 -06:00
mshr.hh mem: Add support for a security bit in the memory system 2014-01-24 15:29:30 -06:00
mshr_queue.cc mem: Squash prefetch requests from downstream caches 2014-05-09 18:58:46 -04:00
mshr_queue.hh mem: Squash prefetch requests from downstream caches 2014-05-09 18:58:46 -04:00
SConscript arch: Resurrect the NOISA build target and rename it NULL 2013-09-04 13:22:57 -04:00