perf:为什么我没有“系统调用”计数器?

时间:2018-05-10 03:23:28

标签: linux linux-kernel perf

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中的事件类型)可以正常工作。

perf中访问系统调用计数器需要做什么?我在x86_64上使用Linux内核和perf版本3.10。

1 个答案:

答案 0 :(得分:1)

如果内核未使用CONFIG_HAVE_SYSCALL_TRACEPOINTS构建,则会丢失这些内容。

您可以这样检查:

# grep TRACEPOINTS "/boot/config-$(uname -r)"
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y