在VirtualBox客户机中运行perf

6

我的教授让我运行:

perf stat -e mem-loads,mem-stores ./test

为了查找 C 文件的内存加载和存储,我正在从 VirtualBox Linux 客户机中进行操作。问题是,perf 表示这是一个无效或不支持的事件,请问我在这里做错了什么?
invalid or unsupported event: 'mem-loads,'
Run 'perf list' for a list of valid events

 Usage: perf stat [<options>] [<command>]

    -e, --event <event>   event selector. use 'perf list' to list available events

在VirtualBox客户机中,是否可以使用perf硬件事件?


它对我来说运行得很好(虽然,值得怀疑的是 mem-loads 总是返回0,因此该事件似乎已经损坏),在Ubuntu 16.04上。你的内核版本是什么?perf list | grep mem 返回什么? - BeeOnRope
嘿,当我尝试时,我得到了这个返回值:mem:<addr>[/len][:access] [硬件断点] 和内核版本:4.13.0-32-generic。 - Jason
希望我们能干成点什么,哈哈,返回了10。 - Jason
sudo perf list | wc -l 怎么样? - BeeOnRope
...还有cat /proc/sys/kernel/perf_event_paranoid - BeeOnRope
显示剩余8条评论
1个回答

8

除了VirtualBox之外,你不能在Linux虚拟机客户端中使用硬件PMU事件来运行perf少数例外

也许有一些实验室的电脑安装了Linux本地系统,或者你可以使用可引导的Linux闪存驱动器进行测试。如果你的教授最初建议你使用虚拟机,你可以与他们提出此问题。


这还是现状吗?我无法获取有关分支误判或周期的统计数据。"不支持",我想这是因为在VirtualBox中运行的虚拟机没有访问权限吧? - Tony
@Tony - 可能是,我不了解VirtualBox对PMU计数器的支持情况。 - BeeOnRope

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接