linux perf是否使用kprobe对每个内核功能进行详细的测量分类?

时间:2019-06-14 23:15:28

标签: linux linux-kernel perf

当我们启用perf 调用图记录(例如perf record -g)时,无论是内核,perf工具都可以对调用路径上每个小功能进行详细的测量细分或用户功能。

我想知道perf如何为内核功能实现这一目标。我的猜测是perf利用kprobe在每次内核函数调用时进行回调。像这样:

  • 调用foo()
    • 捕获到核心kprobe层
    • kperbe回调到perf处理程序,该处理程序设置了PMC
  • 运行foo()
  • foo()的
  • ret
    • 再次捕获到核心kprobe层
    • kprobe回调到perf处理程序,读取PMC
  • 返回来电者

这是正确的吗?还是Linux实际上正在使用其他魔术?谢谢。

0 个答案:

没有答案