mem: Snoop into caches on uncacheable accesses
Review Request #2717 - Created March 30, 2015 and submitted
| Information | |
|---|---|
| Andreas Hansson | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
Changeset 10809:4bff2588b9b0 --------------------------- mem: Snoop into caches on uncacheable accesses This patch takes a last step in fixing issues related to uncacheable accesses. We do not separate uncacheable memory from uncacheable devices, and in cases where it is really memory, there are valid scenarios where we need to snoop since we do not support cache maintenance instructions (yet). On snooping an uncacheable access we thus provide data if possible. In essence this makes uncacheable accesses IO coherent. The snoop filter is also queried to steer the snoops, but not updated since the uncacheable accesses do not allocate a block.
Posted (April 1, 2015, 9:28 a.m.)
-
src/cpu/o3/cpu.cc (Diff revision 1) -
might want to update comment to say "cacheable block"
-
src/dev/dma_device.cc (Diff revision 1) -
same here
-
src/mem/cache/cache_impl.hh (Diff revision 1) -
is this really necessary? I'm curious why setting this flag actually breaks things
-
src/mem/cache/cache_impl.hh (Diff revision 1) -
create a helper function for this loop, since it also appears below now? or maybe we should convert AddrRangeList to a class, and add this as a method...
-
src/mem/cache/mshr.cc (Diff revision 1) -
same comment as above
-
src/mem/cache/mshr.cc (Diff revision 1) -
why not:
if (!pkt->needsExclusive() && !pkt->req->isUncacheable()) {
Review request changed
Updated (April 23, 2015, 2:35 p.m.)
Description: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Diff: |
Revision 2 (+65 -49) |
Looks great! Thanks for the changes!
