Re: [RFC 0/4] perf record: Implement off-cpu profiling with BPF (v1)

From: Milian Wolff
Date: Fri Apr 22 2022 - 06:26:46 EST


On Freitag, 22. April 2022 07:33:57 CEST Namhyung Kim wrote:
> Hello,
>
> This is the first version of off-cpu profiling support. Together with
> (PMU-based) cpu profiling, it can show holistic view of the performance
> characteristics of your application or system.

Hey Namhyung,

this is awesome news! In hotspot, I've long done off-cpu profiling manually by
looking at the time between --switch-events. The downside is that we also need
to track the sched:sched_switch event to get a call stack. But this approach
also works with dwarf based unwinding, and also includes kernel stacks.

> With BPF, it can aggregate scheduling stats for interested tasks
> and/or states and convert the data into a form of perf sample records.
> I chose the bpf-output event which is a software event supposed to be
> consumed by BPF programs and renamed it as "offcpu-time". So it
> requires no change on the perf report side except for setting sample
> types of bpf-output event.
>
> Basically it collects userspace callstack for tasks as it's what users
> want mostly. Maybe we can add support for the kernel stacks but I'm
> afraid that it'd cause more overhead. So the offcpu-time event will
> always have callchains regardless of the command line option, and it
> enables the children mode in perf report by default.

Has anything changed wrt perf/bpf and user applications not compiled with `-
fno-omit-frame-pointer`? I.e. does this new utility only work for specially
compiled applications, or do we also get backtraces for "normal" binaries that
we can install through package managers?

Thanks
--
Milian Wolff | milian.wolff@xxxxxxxx | Senior Software Engineer
KDAB (Deutschland) GmbH, a KDAB Group company
Tel: +49-30-521325470
KDAB - The Qt, C++ and OpenGL Experts

Attachment: smime.p7s
Description: S/MIME cryptographic signature