如何使用kernel / perf_event *。[hc]分析框架?

问题描述 投票:5回答:2

我注意到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/目录下似乎有很多非常有用的东西,但是没有关于这些功能的文档?怎么会 ?

c linux kernel arm profiling
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仍然是。


1
投票

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

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

该功能并非真正意味着要从其他驱动程序中使用。我很确定这会“扰乱”oprofileperf的任何用户。

© www.soinside.com 2019 - 2024. All rights reserved.