cpu: Fix LLSC atomic CPU wakeup
Review Request #3316 - Created Feb. 9, 2016 and submitted - Latest diff uploaded
| Information | |
|---|---|
| Curtis Dunham | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
cpu: Fix LLSC atomic CPU wakeup
Writes to locked memory addresses (LLSC) did not wake up the locking
CPU. This can lead to deadlocks on multi-core runs. In AtomicSimpleCPU,
recvAtomicSnoop was checking if the incoming packet was an invalidation
(isInvalidate) and only then handled a locked snoop. But, writes are
seen instead of invalidates when running without caches (fast-forward
configurations). As as simple fix, now handleLockedSnoop is also called
even if the incoming snoop packet are from writes.Tests, Ran regression on all ISAs, observed acceptable change in 1:
opt/quick/fs/10.linux-boot/arm/linux/realview-simple-timing-dual
