commit | 76788d2edd641c4de9648a0c8121e5cad17495af | [log] [tgz] |
---|---|---|
author | Chinglin Yu <chinglinyu@google.com> | Wed Feb 21 15:49:43 2024 +0800 |
committer | Chinglin Yu <chinglinyu@google.com> | Wed Feb 21 15:49:43 2024 +0800 |
tree | b45619111b1bf3107d38cde4b455922164b45ddb | |
parent | 9839b4d3c2fa9c0ee650b1d2d60ee0a1f98a1f45 [diff] |
Implement clock sync in multi-machine tracing This revision implements the RelayPort exposed on the producer socket for synchronization of clocks in multi-machine tracing: * The RelayPort defines the IPC methods between the tracing service and the relay service for operations that are specific to multi-machine tracing (clock synchronization). * ServiceIPCHostImpl exposes a second IPC service that implements RelayPort to producer sockets (perfetto::RelayIPCService). * The relay service connects to the RelayPort using the IPC client implementation (perfetto::RelayIPCClient). On connected, the relay service invokes the SyncClock() rpc methods with the tracing service to capture clock snapshots on the host and client. * In a tracing session, the tracing service emits the ClockSnapshots packet for the remote machine and also the ClockSync packet for the clock offsets of supported clocks. Bug: 284258446 Test: unit tests and integration tests. Change-Id: I95015c1e0bc8bec7b82b0fdac897900e0de923b7
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.