在 gem5 SE 模式下检测 ROI
Instrumenting ROI in gem5 SE mode
我的目标是在系统调用仿真模式下检测程序的感兴趣区域。我已经根据 this 教程实现了完整系统模式的伪指令。即使在我做了一个小改动之后,测试 FS 中的所有内容也很耗时。有什么方法可以为系统调用模式实现相同的功能吗?
所以我找到了问题所在。您需要删除所有提及的 mmap。所以在我的例子中,它将在微基准中删除 m5_mmap.h 的包含,而不是在 main() 中首先调用 map_m5_mem() 。只需调用 m5_roi_begin() 和 m5_roi_end() (或者您调用您的检测函数)。
同样在 gem5 x86 生成文件 (gem5/util/m5/Makefile.x86) 中删除
-DM5OP_ADDR=0xFFFF0000
标记并再次编译 (make -f Makefile.x86)。现在,当我 运行 使用 gem5 进行微基准测试时,我可以看到 ROI 何时开始和结束。其他一切都保持不变,正如我在上面对问题的评论中发布的那样。
谢谢 Ciro。
我的目标是在系统调用仿真模式下检测程序的感兴趣区域。我已经根据 this 教程实现了完整系统模式的伪指令。即使在我做了一个小改动之后,测试 FS 中的所有内容也很耗时。有什么方法可以为系统调用模式实现相同的功能吗?
所以我找到了问题所在。您需要删除所有提及的 mmap。所以在我的例子中,它将在微基准中删除 m5_mmap.h 的包含,而不是在 main() 中首先调用 map_m5_mem() 。只需调用 m5_roi_begin() 和 m5_roi_end() (或者您调用您的检测函数)。
同样在 gem5 x86 生成文件 (gem5/util/m5/Makefile.x86) 中删除
-DM5OP_ADDR=0xFFFF0000
标记并再次编译 (make -f Makefile.x86)。现在,当我 运行 使用 gem5 进行微基准测试时,我可以看到 ROI 何时开始和结束。其他一切都保持不变,正如我在上面对问题的评论中发布的那样。
谢谢 Ciro。