compact sched_waking: writer (traced_probes)

Very similar to sched_switch, mostly copy-pasted code.
Two points I want to highlight:
* I've made a simplifying assumption with the "event
  format matches compile-time assumptions" condition
  that needs to be met for us to actually use compact
  encoding at runtime (if requested). I've kept it as
  a single bool that is true only if both sched_switch
  and sched_waking are "valid". This technically stops
  us from e.g. using compact sched_switch on a
  platform that predates sched_waking (~4 yr old
  kernel patch).
* Not happy with how hard to read the default case of
  ParsePagePayload's switch statement has turned out
  to be, but also don't want to hide control flow.
  Not sure how to structure this better, nested switch
  on the outcome of an extracted decision-making logic?

Change-Id: I7caf9a413470f2006d0848ba5c8bdd46ab8d479e
11 files changed
tree: 71f0278c97742ad50e0dd5ee997a0e89151a7798
  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. .style.yapf
  18. Android.bp
  19. Android.bp.extras
  20. BUILD
  21. BUILD.extras
  22. BUILD.gn
  23. codereview.settings
  24. heapprofd.rc
  25. MODULE_LICENSE_APACHE2
  26. NOTICE
  27. OWNERS
  28. perfetto.rc
  29. PRESUBMIT.py
  30. README.chromium
  31. README.md
  32. TEST_MAPPING
  33. 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.

Community

You can reach us on our Discord channel. If you prefer using IRC we have an experimental Discord <> IRC bridge synced with #perfetto-dev on Freenode.