【问题标题】:Running perf within a VirtualBox guest在 VirtualBox 来宾中运行 perf
【发布时间】:2018-04-16 20:58:19
【问题描述】:

我的教授让我跑步:

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

perf 硬件事件是否可从 VirtualBox 来宾中获得?

【问题讨论】:

  • 在 Ubuntu 16.04 上它对我来说很好用(尽管 suspiciouslymem-loads 总是返回 0,所以这个事件似乎被破坏了)。你的内核版本是什么,perf list | grep mem 返回什么?
  • 嘿,当我尝试时,我得到了这个:mem:[/len][:access] [Hardware breakpoint] and kernel version: 4.13.0-32-generic
  • uname -a 报告什么?
  • Linux ubuntuHome 4.13.0-32-generic #35~16.04.1-Ubuntu SMP Thu Jan 25 10:13:43 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • perf --versiongrep -m1 'model name' /proc/cpuinfo 怎么样?

标签: linux virtualbox perf


【解决方案1】:

对于 few exceptions(不包括 VirtualBox),您不能在 Linux 上的虚拟机来宾中使用 perf 中的硬件 PMU 事件。

也许有一些实验室计算机安装了本机 Linux,或者您可以使用可引导的 Linux 闪存驱动器进行测试。如果您的教授是首先建议使用虚拟机的人,您可以向他们提出问题。

【讨论】:

  • 还是这样吗?我无法获得有关分支错误预测或循环的统计信息。 “不支持”我认为这是因为在 virtualbox 中运行的 VM 没有访问权限?
  • @Tony - 可能是,我不了解 VirtualBox 对 PMU 计数器的支持。
猜你喜欢
  • 1970-01-01
  • 2016-07-14
  • 2014-04-20
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
  • 2014-09-22
  • 2017-04-29
  • 1970-01-01
相关资源
最近更新 更多