如何使用kernel / perf_event *。[hc]分析框架?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用kernel / perf_event *。[hc]分析框架?相关的知识,希望对你有一定的参考价值。
我注意到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/
目录下似乎有很多非常有用的东西,但是没有关于这些功能的文档?怎么会 ?
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仍然是。
perf_*
文件中的功能由oprofile
和perf
工具等工具使用/提供。
不,它们总是不可用,因为有一个配置选项(CONFIG_PERF_EVENTS)来启用/禁用性能测量。
该功能并非真正意味着要从其他驱动程序中使用。我很确定这会“扰乱”oprofile
或perf
的任何用户。
以上是关于如何使用kernel / perf_event *。[hc]分析框架?的主要内容,如果未能解决你的问题,请参考以下文章
使用 perf_events/oprofile 在 Linux 上分析 JIT 的输出?
XDP/eBPF — 基于 eBPF 的 Linux Kernel 可观测性