为了账号安全,请及时绑定邮箱和手机立即绑定

性能:为什么我没有“ syscall”计数器?

性能:为什么我没有“ syscall”计数器?

慕桂英4014372 2021-04-10 08:56:10
在Linux中显然有一些计数器,perf例如syscall:sys_enter_select,但是在我的系统perf list上没有显示任何计数器其他人确实拥有这些计数器的证据在这里:http : //www.brendangregg.com/blog/2014-07-03/perf-counting.html如果我运行perf top -e 'syscalls:sys_enter_*'它说:Can't open event dir: Permission denied invalid or unsupported event: 'syscalls:sys_enter_*'其他事件类型(中的perf list)工作正常。我需要做什么才能访问syscall计数器perf?我在x86_64上使用Linux内核和perf版本3.10。
查看完整描述

3 回答

?
慕仙森

TA贡献1827条经验 获得超7个赞

某些perf计数器(包括所有计数器)syscall仅对root用户可用。 sudo perf list将显示所有计数器,包括syscall假设内核是用其构建的CONFIG_HAVE_SYSCALL_TRACEPOINTS(有关此信息,请参见Grisha Levit的回答)。

因此,要进行perf top -e 'syscalls:sys_enter_*'工作,请在-下运行它,sudo即使您不需要sudo使用其他计数器也是如此cycles


查看完整回答
反对 回复 2021-04-16
?
慕丝7291255

TA贡献1859条经验 获得超6个赞

如果内核不是用构建的,这些将丢失CONFIG_HAVE_SYSCALL_TRACEPOINTS。


您可以像这样检查:


# grep TRACEPOINTS "/boot/config-$(uname -r)"

CONFIG_TRACEPOINTS=y

CONFIG_HAVE_SYSCALL_TRACEPOINTS=y


查看完整回答
反对 回复 2021-04-16
  • 3 回答
  • 0 关注
  • 299 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信