From 93f57da4c48913552f984ccfe4b1318782a0e64a Mon Sep 17 00:00:00 2001 From: "Daniel R. Carvalho" Date: Tue, 6 Mar 2018 12:14:39 +0100 Subject: [PATCH] mem-cache: Fix bug generated by 8282 Merge 1ae7fced4d32898531a6875a339ef00e43e20e66 generated a bug in tagsInUse calculation. Change-Id: I079e327a0a26a7968f2ed8e433dd6e790c80998b Reviewed-on: https://gem5-review.googlesource.com/8781 Reviewed-by: Nikos Nikoleris Maintainer: Nikos Nikoleris --- src/mem/cache/tags/base_set_assoc.hh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/mem/cache/tags/base_set_assoc.hh b/src/mem/cache/tags/base_set_assoc.hh index 21a250e75..44f68d5fc 100644 --- a/src/mem/cache/tags/base_set_assoc.hh +++ b/src/mem/cache/tags/base_set_assoc.hh @@ -239,8 +239,6 @@ public: uint32_t task_id = pkt->req->taskId(); if (!blk->isTouched) { - tagsInUse++; - blk->isTouched = true; if (!warmedUp && tagsInUse.value() >= warmupBound) { warmedUp = true; warmupCycle = curTick(); @@ -260,6 +258,9 @@ public: blk->invalidate(); } + // Previous block, if existed, has been removed, and now we have + // to insert the new one and mark it as touched + tagsInUse++; blk->isTouched = true; // Set tag for new block. Caller is responsible for setting status. -- 2.30.2