Multi layer tracing

This doc is WIP, stay tuned.

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:

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.