如何在 gem5 中运行 ARM bigLITTLE 时获取 PMU 事件

问题描述

我正在 gem5 中运行 ARM 完整系统模拟,我在命令行中使用的配置是:

./build/ARM/gem5.perf configs/example/arm/fs_bigLITTLE.py
--kernel=/home/ting-bazinga/gem5/linux-arm-gem5/vmlinux
--caches 
--disk /home/ting-bazinga/gem5/fs_imgs/disks/aarch64-ubuntu-trusty-headless.img 
--bootscript /home/ting-bazinga/gem5/fs_imgs/test.rcS

从帖子 Using perf_event with the ARM PMU inside gem5 我认为在 gem5 中获取 PMU 事件是可能的。但是我没有找到如何做到这一点的确切方法

perf 可用于获取 PMU 信息,在我的本地机器上,我只需在终端中下载 linux-tools-common 即可使用该工具。但我不能用模拟做同样的事情。没有我可以在网上找到的 perf 二进制文件(或者任何人都可以提示如何编写这种二进制文件?)我还尝试下载 linux-tools-common 包,将其复制到磁盘映像中,然后使用 makefile 编译它。但不知何故 makefile 在模拟系统中不起作用。

或者可以使用 C 代码获取 PMU 事件吗?在我上面提到的帖子中,有人使用 C 代码来计算特定任务期间分支预测器单元错误预测的分支数量。我可以使用 perf_event_open获取执行期间的指令数。但是运行 perf_event_open 代码需要 root,但我不能在模拟系统中使用 sudo。

谁能给我一些关于如何在 gem5 中获取 PMU 事件的说明?非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)