Hi!

I am looking for a tool that can detect cache conflicts, but I am not
finding any. There are a few that are mostly academic, and thus not
maintained. I think it is important for the performance analysis
community to have a tool that to some extent can detect cache
conflicts. Is it possible to implement support for detecting source
code lines where cache conflicts occur? More info on cache conflicts
below.

=== What are cache conflicts? ===
Cache conflict happens when a cache line is brought up from the memory
to the cache, but very soon has to be evicted to the main memory
because another cache line is mapped to the same entry.

The problem with detecting cache conflicts is that it is normal that
one cache line gets evicted because it is replaced by another cache
line. Therefore, a cache conflict is an outlier: the cache line spent
very little time in the cache before it got evicted.

=== How to detect cache conflicts? ===
As I said, there are a few science papers that talk about it. And
probably there are a few different approaches on how to do it.

One approach is to count the amount of time a cache line has been
sitting in cache before it got evicted. For each instruction that
causes an eviction, we count what is the amount of time that the
evicted cache line spent in the cache. Next we build a statistic.
Instructions evicting mostly shortly-lived cache lines are the ones
where cache conflicts are most likely to happen.

=========================

Please comment!

Ivica


_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to