startup writers: Commit locally buffered data in batches

If a lot of data is buffered in the StartupTraceWriters, we may end up
stalling during binding because we fill up the SMB with the buffered
data in a quick burst.

This patch makes it possible to commit the locally buffered data into
the SMB in smaller batches, waiting for the service to process each
batch before committing the next. The underlying TraceWriter may commit
future chunks at any time after the first batch of buffered data chunks
is committed (i.e. while other batches are pending asynchronous commit).
This is not an issue because the service can handle chunks being
committed out-of-order.

Bug: 136235443
Change-Id: Ic9e2d2e085ca2b14758867a7060d179171de9d2b
9 files changed
tree: f22f8831465cc1e157da3bcbde2bb25e5c025458
  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
  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
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.