| # Multi layer tracing |
| |
| *** note |
| **This doc is WIP**, stay tuned. |
| <!-- TODO(primiano): write multi-layer tracing doc. --> |
| *** |
| |
| This doc should explain how is possible to compose a hierarchy of tracing |
| services. The concrete use case is combining multiprocess tracing in Chromium |
| with Android's tracing daemons (think to hypervisors' nested page tables). |
| |
| The TL;DR of the trick is: |
| - ABI stability of the |
| [shared_memory_abi.h](/include/perfetto/tracing/core/shared_memory_abi.h) |
| - ABI stability of the IPC surface. |
| |
| The tracing service in chromium should proxy Producer connections (adapting Mojo |
| to our IPC) towards the Android's `traced` service, passing back the shared |
| memory buffers to the real producers (the Chrome child process). |
| |
| Conceptually it is simple and straightforward, requires *some* care to implement |
| correctly ownership of the shared memory buffers though. |