Trace Redaction - Redact CompactSched Switch Events

CompactSched switch events are expressed using assosicative arrays
along side an intern string table (shared with waking events).

To redact these events, the pid and comm arrays need to be "zipped"
together and passed through a transform. Compared to ftrace switch
events, the transform is non-trival due to the intern string table.

To transform the comm value, the old comm value needs to be
retrived from the intern table, optionally transformed, and then
conditionally appended to the internt able (if it was not in the
intern table).

Because the compact sched switch events are in a ftrace bundle, all
events occur on the cpu listed on the bundle.

Bug: 339504266
Change-Id: Ia46746dbc19c3ddda74ce41fd5a5de6d67f73871
3 files changed
tree: 1ba2b445645ca6f877011ddb3e5dc91ab901365b
  1. .github/
  2. bazel/
  3. build_overrides/
  4. buildtools/
  5. debian/
  6. docs/
  7. examples/
  8. gn/
  9. include/
  10. infra/
  11. protos/
  12. python/
  13. src/
  14. test/
  15. third_party/
  16. tools/
  17. ui/
  18. .bazelignore
  19. .clang-format
  20. .clang-tidy
  21. .git-blame-ignore-revs
  22. .gitattributes
  23. .gitignore
  24. .gn
  25. .style.yapf
  26. Android.bp
  27. Android.bp.extras
  28. BUILD
  29. BUILD.extras
  30. BUILD.gn
  31. CHANGELOG
  32. codereview.settings
  33. DIR_METADATA
  34. heapprofd.rc
  35. LICENSE
  36. meson.build
  37. METADATA
  38. MODULE_LICENSE_APACHE2
  39. OWNERS
  40. perfetto.rc
  41. PerfettoIntegrationTests.xml
  42. persistent_cfg.pbtxt
  43. PRESUBMIT.py
  44. README.chromium
  45. README.md
  46. TEST_MAPPING
  47. traced_perf.rc
  48. WATCHLISTS
  49. WORKSPACE
README.md

Perfetto - System profiling, app tracing and trace analysis

Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.

See https://perfetto.dev/docs or the /docs/ directory for documentation.