如何在Linux内核中进行概要分析或使用perf_event *。[hc]框架?

0x9*_*x90 5 c linux profiling kernel arm

我注意到在arch / arm / kernel下有一些分析源代码:

perf_event.c 
perf_event_cpu.c 
perf_event_v6.c 
perf_event_v7.c 
perf_event_xscale.c
Run Code Online (Sandbox Code Playgroud)

我不了解这些文件的层次结构,如何使用它们?我可以假设它们始终存在并在内核模块中使用它们吗?我的内核模块在Cortex-A7或Cortex-A15内核上运行。

/arch/arm/kernel/目录下似乎有很多非常有用的东西,但是没有有关功能的文档?怎么会 ?

Mat*_*son 1

文件中的功能由和 等工具perf_*使用/提供。oprofileperf

不,它们并不总是可用,因为有一个配置选项(CONFIG_PERF_EVENTS)可以启用/禁用性能测量。

该功能实际上并不意味着可以从其他驱动程序中使用。我很确定这会让oprofile或的任何用户“不安” perf