Cache: Fix an issue with LRU when bonus block is used to complete transaction.
The block is never inserted because it's the one extra block in the cache, but it can be invalidated twice in a row. In that case the block doesn't have a new master id (beacuse it was never inserted), however it is valid and the accounting goes wrong at that point.
This commit is contained in:
parent
86d1042d9f
commit
d907d0ec72
1 changed files with 1 additions and 0 deletions
1
src/mem/cache/cache_impl.hh
vendored
1
src/mem/cache/cache_impl.hh
vendored
|
@ -994,6 +994,7 @@ Cache<TagStore>::handleResponse(PacketPtr pkt)
|
|||
if (blk->isDirty()) {
|
||||
allocateWriteBuffer(writebackBlk(blk), time, true);
|
||||
}
|
||||
blk->status &= ~BlkValid;
|
||||
tags->invalidateBlk(blk);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue