Small bug fixes for timing LL/SC. Better now but
not necessarily 100% there yet. src/mem/cache/cache_impl.hh: Generate response packet on failed store conditional. src/mem/packet.hh: Clear packet flags when reinitializing. (SATISFIED in particular is one we don't want to leave set.) --HG-- extra : convert_revision : 29207c8a09afcbce43f41c480ad0c1b21d47454f
This commit is contained in:
parent
0159529343
commit
5e2263fc52
7
src/mem/cache/cache_impl.hh
vendored
7
src/mem/cache/cache_impl.hh
vendored
|
@ -232,7 +232,12 @@ Cache<TagStore,Buffering,Coherence>::access(PacketPtr &pkt)
|
|||
}
|
||||
}
|
||||
|
||||
if (!(pkt->flags & SATISFIED)) {
|
||||
if (pkt->flags & SATISFIED) {
|
||||
// happens when a store conditional fails because it missed
|
||||
// the cache completely
|
||||
if (pkt->needsResponse())
|
||||
respond(pkt, curTick+lat);
|
||||
} else {
|
||||
missQueue->handleMiss(pkt, size, curTick + hitLatency);
|
||||
}
|
||||
|
||||
|
|
|
@ -310,6 +310,7 @@ class Packet
|
|||
* multiple transactions. */
|
||||
void reinitFromRequest() {
|
||||
assert(req->validPaddr);
|
||||
flags = 0;
|
||||
addr = req->paddr;
|
||||
size = req->size;
|
||||
time = req->time;
|
||||
|
|
Loading…
Reference in a new issue