性能如何对内核堆栈进行采样

How does perf sample kernel stacks?

本文关键字:采样 堆栈 内核 性能      更新时间:2023-10-16

据我所知,perf能够为每个进程/线程采样完整的调用堆栈,即使它当前在内核内。由于 perf 在我假设的用户空间中运行,我想知道它如何访问不同进程/线程堆栈的内核部分。

目的是编写一个应用程序,该应用程序可以对其他进程/线程的调用堆栈进行采样,即使它们当前在内核中也是如此。

问候

perf

两部分组成。用户空间工具和perf_event_open系统调用。

通常,堆栈采样由内核通过系统调用完成。您也可以使用perf_event_open编写应用程序 - 默认情况下包含内核示例(exclude_kernel==0)。