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。
答案 0 :(得分:1)
如果内核未使用CONFIG_HAVE_SYSCALL_TRACEPOINTS
构建,则会丢失这些内容。
您可以这样检查:
# grep TRACEPOINTS "/boot/config-$(uname -r)"
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y