commit | 006d75d219745f48dd0b8e3f490c0a352ca0e79f | [log] [tgz] |
---|---|---|
author | Ryan Savitski <rsavitski@google.com> | Mon Apr 04 13:15:56 2022 +0100 |
committer | Ryan Savitski <rsavitski@google.com> | Mon Apr 04 13:15:56 2022 +0100 |
tree | 63e60daa59ce2616f3362cd4d7b3b901c26abf30 | |
parent | 0d039f99a217e8f872d5dcd8210347fcac684c19 [diff] |
profiler cmdline matching: add parallel implementation that supports globs There's a demand for more flexible matching when perfetto profilers select target processes via /proc/pid/cmdline. We've decided that it makes sense to change the semantics of the existing config fields instead of adding new ones, as the vast majority of existing configs won't be affected. This patch introduces the new glob-aware cmdline matching logic that we'll be migrating to, starting with traced_perf and perfetto_hprof. Extra context at go/perfetto-profiler-globs. "normalize.h" is folded into proc_utils since its purpose is outdated. The logic exists only within perfetto and bionic/malloc_heapprofd, and the header is referenced only from within perfetto. I've overdocumented the implementation because while string parsing often looks innocent, it is at the same time often subtle. Bug: 201273553 Change-Id: I840bfd2201ab238bc7b16a75de3b037a17556169
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.