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