I am currently trying to trace all DRAM accesses of a Process. I am interested in obtaining detailed traces of the data accesses that missed the last level of processor hardware cache and result in main memory accesses.
My ideal trace file would look like this :
Timestamp , Physical Memory Address , Virtual Memory Address , Operation (Load or store) , hit or miss
The tools I have already considered are Intel VTune , perf mem , and valgrind. I couldn't find a way to use Intel VTune to find such information and the same goes for perf mem. I am pretty sure there is a way to create such trace with valgrind but the output files and the runtimes are enormous. I have also considered checking periodically the Page Table - access bit customly, and create a trace file with Virtual Addresses but that would later require a creation of cache simulation to obtain the information I want. (Seems like too much work and I wish I could avoid that)
What I want to ask if there is a way to obtain such trace? Or if there is no such way, is there a way to obtain somewhat similar information that I could use for memory access pattern prediction (on page level) ?