traced_probes: function_graph recording Add ability to configure "function_graph" as the active ftrace tracer, which will emit funcgraph_entry and funcgraph_exit events into the ringbuffer (alongside whatever other tracepoints have been enabled). Parse these events, using the kallsyms symboliser to resolve the function pointers to names. Also add support for specifying which functions to trace using the "set_ftrace_filter" interface. Notable limitation: if there is already a "nop" tracer ftrace data source active, the function graph data source will be rejected since the kernel will refuse (EBUSY) to change the active tracer if the trace pipes are already opened (and I'm not willing to refactor traced_probes to support closing and reopening pipes during an active trace). However the opposite order (starting a tracepoint-only trace after a funcgraph one) is ok. Concurrent funcgraph data sources are supported, but they will all observe the full set of traced functions. Android: requires a debug build for now. Based on a contribution from bgrzesik@. Bug: 249767431 Change-Id: Ic045a26f89ce4b24559d090c68d7c6c7a132c4c3
Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.
See https://perfetto.dev/docs or the /docs/ directory for documentation.