perf工具
perf事件源与PMU
perf在eBPF中的应用
perf_event open系统调用
perf APr使用
sudo apt install linux-tools-$(uname -r)
sudo apt-file list linux-tools-5.15.0-52-generic
对系统正在运行的程序进行采样,查看系统调用。
sudo perf top
对系统调用,sys_enter_ 进行统计采样
sudo perf stat -e 'syscalls:sys_enter_*' -a sleep 5
sudo perf ftrace -F |wc -l
采样
sudo perf record ls
查看采样记录
sudo perf script
以表格的形式显示出来
sudo perf report
sudo perf record -e 'syscalls:sys_enter_openat' -aR sleep 2
通过strace 查看perf 程序如何工作,在linux
sudo strace perf record -e 'syscalls:sys_enter_openat' -aR sleep 2
sudo strace perf -e openat,perf_event_open -e 'syscalls:sys_enter_openat' -aR sleep 2
/sys/bus/event_source/devices/
在linux 源码下查询
grep -r "perf_pmu_register" kernel/ |grep """"
grep -r "perf_pmu_register" arch/ grep """"
linux 内核相关的跟踪代码
https://elixir.bootlin.com/linux/v5.15.52/source/kernel/trace
https://github.com/aleixrocks/perf_event_open-example
sudo strace perf -e openat,perf_event_open examples/hello_world.py