o3: Fix issue with LLSC ordering and speculation
authorAli Saidi <Ali.Saidi@ARM.com>
Mon, 7 Jan 2013 18:05:33 +0000 (13:05 -0500)
committerAli Saidi <Ali.Saidi@ARM.com>
Mon, 7 Jan 2013 18:05:33 +0000 (13:05 -0500)
commit69d419f31383ac7801e1debb62d5bbf7cb899e3c
tree8081815bc613db0126c785f0b14a6ade6a651ad1
parent5146a69835bc9ba37fba7d3b0ff72ecaf9b98b74
o3: Fix issue with LLSC ordering and speculation

This patch unlocks the cpu-local monitor when the CPU sees a snoop to a locked
address. Previously we relied on the cache to handle the locking for us, however
some users on the gem5 mailing list reported a case where the cpu speculatively
executes a ll operation after a pending sc operation in the pipeline and that
makes the cache monitor valid. This should handle that case by invaliding the
local monitor.
src/arch/alpha/locked_mem.hh
src/arch/arm/locked_mem.hh
src/arch/mips/locked_mem.hh
src/arch/power/locked_mem.hh
src/arch/sparc/locked_mem.hh
src/arch/x86/locked_mem.hh
src/cpu/o3/lsq_unit_impl.hh