DynamoRIO / DynamoRIO/dynamorio
Inaccurate Cache Miss Analysis when dumping prefetching hints for multi-process applications in online mode
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 31
Description
In the current approach, when dumping prefetching hints for multi-process applications in online mode, it considers all cache misses caused by the same PC across different PIDs. These cache misses could also be spread across page tables maintained by multiple processes. This could potentially lead to incorrect stride calculations and misleading analysis results.
**reproduce the behavior:**
```
bin64/drrun -t drmemtrace -tool miss_analyzer -LL_miss_file rec.csv -- gimp
```
In this scenario, GIMP operates as a multi-process program and actual executions can record different PIDs in `memref`. However, the function `dynamorio::drmemtrace::cache_miss_stats_t::dump_miss()` only retains the PC and address information and does not take into account the presence of multiple PIDs.
Contributor guide
Assessment
This issue has not been assessed yet.