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