perf性能分析测试
一.内核配置
./kernel/trace
kernel hacking
TRACER NOP TRACER
TRACER TRACE CLOCK
TRACER RING BUFFER
TRACER EVENT TRACING
TRACET TRACING
Tracers
./init/kconfig, 打开宏CONFIG_PERF_EVENTS
General setup
kernel performance event and counters
Device drivers
Hardware Mnitoring support
kernel hacking->Compile-time checks and compiler options
Debug Filesystem
HAVE_PERF_EVENTS 已经默认打开
二.实际问题
问题1:
在代码./kernel/events/core.c中有宏定义CONFIG_EVENT_TRACING,来控制不同的代码编译路径,有一个
是空函数perf_tp_register(void),需要在kernel hacking中把TRACER EVENT TRACING打开。
问题2:
打开tracer point后,内核代码增加了600多K,导致内核解压时出错,可能uboot时分配的解压空间有限
,删除了部分没有用到的驱动
三.测试实例
mount -t debugfs nodev /sys/kernel/debug/ //挂载可以trace 的trace point事件
perf stat -e 'syscalls:sys_enter_*' ls
四.优秀的博客地址
https://blog.csdn.net/he11o_liu/article/details/80361542
https://blog.csdn.net/pwl999/article/details/81393149