trace_processor: fix ordering of slices in trace storage

Slices are meant to be stored ordered by timestamp. However, because we
were waiting until the end event to push the slice to storage, each
stack would actually be stored in *reverse* timestamp order.

Fix this issue by pushing the slice to storage as soon as we see the
start event and then updating duration after the fact. This works
similarily to sched events.

Change-Id: If89ff8f4fde91917b090f1013efafd0f3d9d997d
4 files changed
tree: a83a9f52990b21ac9748ebffd934a903000ff63f
  1. build_overrides/
  2. buildtools/
  3. debian/
  4. docs/
  5. gn/
  6. include/
  7. infra/
  8. protos/
  9. src/
  10. test/
  11. tools/
  12. ui/
  13. .clang-format
  14. .gitignore
  15. .gn
  16. .travis.yml
  17. Android.bp
  18. Android.bp.extras
  19. BUILD.gn
  20. codereview.settings
  21. heapprofd.rc
  22. MODULE_LICENSE_APACHE2
  23. NOTICE
  24. OWNERS
  25. perfetto.rc
  26. PRESUBMIT.py
  27. README.chromium
  28. README.md
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.