Skip to content

Sideloading of perfetto binary#528

Open
KarlSimonsen wants to merge 2 commits intofacebook:mainfrom
KarlSimonsen:export-D39291671
Open

Sideloading of perfetto binary#528
KarlSimonsen wants to merge 2 commits intofacebook:mainfrom
KarlSimonsen:export-D39291671

Conversation

@KarlSimonsen
Copy link
Copy Markdown

Summary:
Sideloading of perfetto binary

(based on earlier diff D36329256 and leveraging a private build based on D39229401)

The motivation here is to build our own copy of the perfetto binary based on the latest OS 12 sources from https://github.com/google/perfetto (OSS). This offers several advantages:

  1. Better Perfetto support and fewer errors by using the Android OS 12 version of perfetto even on older systems running older versions of perfetto natively.
  2. At least limited perfetto support on some devices not currently running at least Android OS 10 and therefore with no native perfetto binary.
  3. Ability to run against a debug version of perfetto for better logging and debugging capabilities.
  4. This also gives us our own built traceconv binary which we will probably want to use going forward to better format the output.

Limitations:

  1. Doesn't really expand memory profiling capability (yet) to all devices. Further work is required to see if further coverage is possible.
  2. Doesn't directly overcome any permissions problems related to working on unrooted devices, although in some cases it gets us closer to solving that.
  3. Current build includes arm and arm64 flavors only. x86 and x86_64 flavors are also can be built out-of-the-box, but any other variations would take further build configuration work. However, this should cover most of our uncovered devices.

Not a panacea, but potentially a big step in the right direction.

Reviewed By: axitkhurana

Differential Revision: D39291671

Karl Simonsen added 2 commits September 13, 2022 10:49
Summary:
Add bridge file downloader

Purpose is to add an OSS file_downloader.py to match the existing OSS file_uploader.py.

Implementation-specific version is not included in OSS.

Differential Revision: https://internalfb.com/D39421795

fbshipit-source-id: 59f30919f7cb6a5393ad3fb591a50df97d4a4afb
Summary:
Sideloading of perfetto binary

(based on earlier diff D36329256 and leveraging a private build based on D39229401)

The motivation here is to build our own copy of the perfetto binary based on the latest OS 12 sources from  https://github.com/google/perfetto (OSS). This offers several advantages:

1. Better Perfetto support and fewer errors by using the Android OS 12 version of perfetto even on older systems running older versions of perfetto natively.
2. At least limited perfetto support on some devices not currently running at least Android OS 10 and therefore with no native perfetto binary.
3. Ability to run against a debug version of perfetto for better logging and debugging capabilities.
4. This also gives us our own built traceconv binary which we will probably want to use going forward to better format the output.

Limitations:
1. Doesn't really expand memory profiling capability (yet) to all devices. Further work is required to see if further coverage is possible.
2. Doesn't directly overcome any permissions problems related to working on unrooted devices, although in some cases it gets us closer to solving that.
3. Current build includes arm and arm64 flavors only. x86 and x86_64 flavors are also can be built out-of-the-box, but any other variations would take further build configuration work. However, this should cover most of our uncovered devices.

Not a panacea, but potentially a big step in the right direction.

Reviewed By: axitkhurana

Differential Revision: D39291671

fbshipit-source-id: 3a355db9f8bc53431f6f871904a4dba19818ac95
@facebook-github-bot
Copy link
Copy Markdown

This pull request was exported from Phabricator. Differential Revision: D39291671

@facebook-github-bot
Copy link
Copy Markdown

Hi @KarlSimonsen!

Thank you for your pull request.

We require contributors to sign our Contributor License Agreement, and yours needs attention.

You currently have a record in our system, but the CLA is no longer valid, and will need to be resubmitted.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants