commit | 65d5c29d04de35343ca1f8b17969e17c47d705e8 | [log] [tgz] |
---|---|---|
author | Aaron Vaage <vaage@google.com> | Tue Jun 04 21:17:02 2024 -0700 |
committer | Aaron Vaage <vaage@google.com> | Thu Jun 06 08:49:54 2024 -0700 |
tree | fdb546e13488a07e92dc8b40a036779fe0199682 | |
parent | bcb32310ce68faee2e33e0b887db8a2f760dd67e [diff] |
Trace Redaction - Implement thread merge strategy To implement thread merging, there are only a few interfaces that need to be implemented. These are the same interfaces that other redactions are based one. A simple example of this is the thread sched modification interface. The thread merging implementation replaces the pid value with the cpu pid value. It is through these simple strategies that thread merging can be implemented while requiring very little (to no) risk. As implemented, there are some some small issues: 1. The process tree contains removed threads and processes. The names have been removed, but the pids and tids are present. 2. The process tree does not contain the new per-cpu threads. 3. In some cases, threads split and one gets orphaned. In case, a thread which started at time X and ended at time Y gets split into two threads, one starting at time X and never ends, and another that always existed and never ends. Bug: 339504266 Bug: 336807771 Change-Id: Icec4b7625c2decc8466b15aecd53b626f86644e3
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.