trace_processor: refactor tracks to reflect final design

This CL changes all the track tables and track tracker to reflect the
final agreed shape of these tables.

The main change carried out here is to decouple the idea of the source
of a track from the table it ends up in. Instead, we simply store the
source and the id of the source in the args table - this is useful for
debugging.

Now, all tracks are grouped into track types based not on source but on
what the context of a track is (i.e. thread, process, cpu etc).

However, if a consumer needs to filter tracks based on source, they
should still add a new table and place all their tracks (plus the source)
inside the new subclass - this is done for GPU events.

Context: go/perfetto-tp-refactor
Bug: 135177627
Change-Id: Ie8aa86d84fe9c7266433766d23e8fa247b0966be
12 files changed
tree: eba689a6db1431550e1be7370da3295364006246
  1. bazel/
  2. build_overrides/
  3. buildtools/
  4. debian/
  5. docs/
  6. gn/
  7. include/
  8. infra/
  9. protos/
  10. src/
  11. test/
  12. tools/
  13. ui/
  14. .clang-format
  15. .gitignore
  16. .gn
  17. Android.bp
  18. Android.bp.extras
  19. BUILD
  20. BUILD.extras
  21. BUILD.gn
  22. codereview.settings
  23. heapprofd.rc
  24. MODULE_LICENSE_APACHE2
  25. NOTICE
  26. OWNERS
  27. perfetto.rc
  28. PRESUBMIT.py
  29. README.chromium
  30. README.md
  31. TEST_MAPPING
  32. WORKSPACE
README.md

Perfetto - Performance instrumentation and tracing

Perfetto is an open-source project for performance instrumentation and tracing of Linux/Android/Chrome platforms and user-space apps.

See www.perfetto.dev for docs.

Bugs

  • For bugs affecting Android or the tracing internals use the internal bug tracker (go/perfetto-bugs).
  • For bugs affecting Chrome use http://crbug.com, Component:Speed>Tracing label:Perfetto.