I just had the idea to extend an existing tool (or write a new tool) which helps identifying false sharing. I imagine it keeping track of memory allocations and tracking where false sharing occurs. It should output a nice callstack for a pair of threads that do a write/write and write/read on the same cache line. Furthermore, it would be helpful to know the frequency of the writes and reads for the cache lines experiencing false sharing. A configuration option would be the cache line size. I am willing to spend some time working on this but I need to get familiar with the valgrind source code first. Has this idea been proposed before? Is it feasible using the current valgrind architecture? Should this be new tool or part of memcheck or helgrind?


Rafael E. Fernández
B.S. Computer Science
University of Illinois at Urbana-Champaign