Fix multi buffer support and add time-limited traces

Removes the workarounds that required to hardcode
target_buffer = X everywhere. Now the service maintains
a translation map between relative buffer indexes passed
by the Consumer(s) (relative to the buffers specified in
their trace config) and global buffer IDs (namespace of
all buffers for all consumers and all trace sessions).
Also add support for time-limited traces in the service.

Change-Id: Iaaceebddb5ac2637ed67079d565d475227c0d113
13 files changed
tree: 0669fd23f37e08c6a326de34c16996d43b09e706
  1. build_overrides/
  2. buildtools/
  3. cts/
  4. docs/
  5. gn/
  6. include/
  7. infra/
  8. protos/
  9. src/
  10. tools/
  11. .clang-format
  12. .gitignore
  13. .gn
  14. .travis.yml
  15. Android.bp
  16. Android.bp.extras
  17. BUILD.gn
  18. codereview.settings
  19. MODULE_LICENSE_APACHE2
  20. NOTICE
  21. OWNERS
  22. perfetto.rc
  23. PRESUBMIT.py
  24. README.chromium
  25. README.md
README.md

Perfetto - Performance instrumentation and logging for POSIX platforms

This project is meant to be built both as part of the Android tree and from a standalone checkout

For internal docs see this page

Supported platforms

Android is the platform targeted in the first milestones. Right now Linux desktop and OSX are maintained best-effort.

Contributing

This project uses Android AOSP Gerrit for code reviews and uses the Google C++ style. Currently targets -std=c++11.

You can use both git cl upload from Chromium depot tools or Android repo to upload patches.

git cl is quite convenient as it supports code auto-formatting via git cl format.

See https://source.android.com/source/contributing for more details about external contributions and CLA signing.

Build instructions

See docs/build_instructions.md

Run Perfetto

See docs/running_perfetto.md

Run tests

On the host (Linux / OSX)

$ tools/ninja -C out/default (tracing_unittests | tracing_benchmarks)
$ out/default/tracing_unittests --gtest_help

On Android

Either connect a device in ADB mode or use the bundled emulator.

To start the emulator:
$ tools/run_android_emulator (arm | arm64) &

To run the tests (either on the emulator or physical device):
$ tools/run_android_test out/default tracing_unittests