None of the resources I have found on internet explain differentiating different types of cache misses. Can someone help me with what should I change in config or code to measure only conflict misses?
2
votes
1 Answers
0
votes
BaseTags has a member variable called tagsInUse. It is increased every time a tag entry that was previously invalid becomes valid.
Considering a conflict miss is generated when there are still free (invalid) cache lines, yet the placement policy decided to choose to evict a valid block, you just have to create a miss stats variable that is incremented (can be done with a if inside incMissCount(PacketPtr pkt) within src/mem/cache/base.hh) whenever a write miss happens (check src/mem/packet.hh for MemCmd types. I'd say WritebackDirty, WritebackClean, WriteClean, CleanEvict are the ones you should look up for, but you should double check that) and you haven't used all cache entries (tagsInUse < size).