5.2.2 DynamoRio
使用指南
在程序运行时对程序动态插桩,以实现源代码的内存语意修改。
需求
对于我们插桩的所有mov指令都会执行if some_memory_region() insert_logic()
,来确保能执行到我们的逻辑。但是显然的缺点是LLC的memory hierarchy被破坏,这样无法模拟真实的内存访问。这也是和gem5模拟器最大的区别。
收集数据
你可以在clients/drcachesim/analyzer_multi.cpp
中简单的收集到任意内存state的counter信息。需要在clients/drcachesim/tools/
中创建一个工具类,记录插桩的时机,内存状态跳转和简单的内存tiering的大小。由于记录prefetching的时机比较难控制,我们需要在clients/drcachesim/tracer/
中创建一个工具类,记录prefetching的时机。
Last updated