5

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

perf_event.c 
perf_event_cpu.c 
perf_event_v6.c 
perf_event_v7.c 
perf_event_xscale.c

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

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

4

2 回答 2

4

Perf_event 确实提供了一个可以以编程方式使用的 API,但文档充其量是稀疏的。Vince Weaver 在此处制作了使用 perf_event API 的最佳资源:http ://web.eece.maine.edu/~vweaver/projects/perf_events/

他还提供了一些记录计数器的示例代码。

但是,最好的办法是使用包装 perf_event 并使其更易于访问的 API,例如 PAPI ( http://icl.cs.utk.edu/papi/ )

编辑:由于您想从内核模块执行此操作,因此 PAPI 将不可用。然而 perf_event API 仍然是。

于 2015-03-16T20:31:59.080 回答
1

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

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

该功能并不是真正要从另一个驱动程序中使用。我很确定这会“扰乱” oprofileor的任何用户perf

于 2013-09-06T17:19:53.183 回答