New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 711102 link

Starred by 9 users

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Have Perf Compile Bots Create & Archive .size Files

Project Member Reported by agrieve@chromium.org, Apr 13 2017

Issue description

As part of our master plan for better size tracking and easier analysis, I'd like to have bots archive .size files for Android and Linux builders.

Command for Android:

tools/binary_size/supersize archive output.size --apk-file out/Release/apks/$APK

Command for Linux:

tools/binary_size/supersize archive output.size --elf-file out/Release/chrome

This creates a .size file (about 5mb), which contains all symbols and sizes in a ready-to-diff format.

Rather than storing these along with the normal bot "archive output directory" step, I'd like to have them stored on their own so they can be fetched without having to pull down a >1GB .zip to get at them.

I'm happy to write the code for this, but wondering if anyone has advice for:

1) Is there an existing google storage bucket that would be appropriate to store them, or should I make a new one. If a new one, what ACLs should it have so that the bots can upload to it?

2) Which recipe should I add this logic to?
 
For Telemetry tests, we usually upload trace files to gs://chrome-telemetry-output/ bucket.

I am not sure whether the compile bots already have .boto file for that.
Cc: simonhatch@chromium.org
Though the perf dashboard team also plan to support breakdown metric. A possibility here is to make the size script generate the total size metric & a bunch of breakdown metric & just upload them all to the perf dashboard.

Though I am not sure whether they can support general breakdown metrics for non Telemetry tests yet.
The recipe we're running is the chromium recipe. So theoretically you could edit it. Practically, though, it's hard to edit that. Let me look at the recipe to see how hard adding a new upload step would be.

We could re-use the same bucket. The bots do have the ability to upload to that already.
Cc: dpranke@chromium.org
Ideally this could be done with a source side script, rather than a recipe change. I'm not sure if we have any sort of access to google storage, and the ability to upload, from source side scripts. Dirk, do you know if this is on the radar at all?
The management of the credentials is done build-side, but assuming those are set up, uploading from src-side scripts works just fine.
re #2: ooh, would love to know more about how to report breakdown metrics properly. resource_sizes.py does breakdowns, but just reports them as regular metrics.

For the .size files though, it will be important to archive them so we can use them to see which symbols changed between revs.
Cc: eakuefner@chromium.org
+eakuefner

We're in the early stages of getting breakdown metrics to work. On our end, we need to:
1) Add an endpoint that accepts the new HistogramSet format: https://github.com/catapult-project/catapult/blob/master/docs/histogram-set-json-format.md (we're hoping to have the endpoint finished by mid-May)
2) Surface the RelatedHistogramBreakdown in alerts, bugs, bisects (we hope to have this by end of Q3): https://github.com/catapult-project/catapult/blob/master/tracing/tracing/value/diagnostics/related_histogram_breakdown.html

On your end, you'd need to:
1) Migrate resource_sizes to output the new HistogramSet format
2) Add a RelatedHistogramBreakdown into the HistogramSet you're uploading
3) Work with us on getting the kinks out of the system, as an early customer.

Is that something you'd be willing to work on mid-to-late Q3?

Definitely happy to be an early adopter for this. Just let me know when you're ready for us to try it out :)
Owner: agrieve@chromium.org
Revisiting this, as a first approach I think it would be fine to archive these as a part of the build archive. CL here: https://chromium-review.googlesource.com/c/491986/
Cc: sebmarchand@chromium.org groby@chromium.org brettw@chromium.org picksi@chromium.org brat...@opera.com odean@chromium.org agrieve@chromium.org pbos@chromium.org
 Issue 482401  has been merged into this issue.
Project Member

Comment 11 by bugdroid1@chromium.org, May 4 2017

Project Member

Comment 12 by bugdroid1@chromium.org, May 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/1130031d6393e79d1954c3554ce994babc5f3ea5

commit 1130031d6393e79d1954c3554ce994babc5f3ea5
Author: Andrew Grieve <agrieve@chromium.org>
Date: Thu May 04 19:41:21 2017

Revert "Run "supersize archive" on Android perf builders"

This reverts commit 9d59ac6854b57e8d12ce5fcc3266fd413521cc49.

Reason for revert: Wrong command line flags :(

Original change's description:
> Run "supersize archive" on Android perf builders
> 
> Creates a .size file that //tools/binary_size/diagnose_apk_bloat.py will
> fetch out of the build archive.
> 
> BUG= 711102 
> 
> Change-Id: I5cc64839efc1e555cc778a88022077b83ab130bf
> Reviewed-on: https://chromium-review.googlesource.com/491986
> Reviewed-by: Stephen Martinis <martiniss@chromium.org>
> Commit-Queue: Andrew Grieve <agrieve@chromium.org>
> 

TBR=agrieve@chromium.org,martiniss@chromium.org,jbudorick@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 711102 

Change-Id: I345c1429a1f348ea8454e28955a33da7e287b12f
Reviewed-on: https://chromium-review.googlesource.com/496506
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>

[modify] https://crrev.com/1130031d6393e79d1954c3554ce994babc5f3ea5/scripts/slave/recipe_modules/chromium_android/example.py
[modify] https://crrev.com/1130031d6393e79d1954c3554ce994babc5f3ea5/scripts/slave/recipes/android/builder.expected/full_chromium_perf_Android_Builder.json
[modify] https://crrev.com/1130031d6393e79d1954c3554ce994babc5f3ea5/scripts/slave/recipes/android/builder.expected/full_chromium_perf_Android_arm64_Builder.json
[modify] https://crrev.com/1130031d6393e79d1954c3554ce994babc5f3ea5/scripts/slave/recipes/android/builder.py
[modify] https://crrev.com/1130031d6393e79d1954c3554ce994babc5f3ea5/scripts/slave/recipe_modules/chromium_android/api.py
[modify] https://crrev.com/1130031d6393e79d1954c3554ce994babc5f3ea5/scripts/slave/recipe_modules/chromium_android/example.expected/resource_size_builder_basic.json

Project Member

Comment 13 by bugdroid1@chromium.org, May 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/cccc78db18bb9c80d1689afe883b8131ec878a1f

commit cccc78db18bb9c80d1689afe883b8131ec878a1f
Author: Andrew Grieve <agrieve@chromium.org>
Date: Thu May 04 20:27:19 2017

Reland: Run "supersize archive" on Android perf builders

This reverts commit 1130031d6393e79d1954c3554ce994babc5f3ea5.

Reason for reland: Added "archive" argument.

TBR=agrieve@chromium.org,martiniss@chromium.org,chromium-reviews@chromium.org,jbudorick@chromium.org
BUG= 711102 

Change-Id: Ic5a3687927ce905cbd58819ac472bf269aef8e59
Reviewed-on: https://chromium-review.googlesource.com/496526
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>

[modify] https://crrev.com/cccc78db18bb9c80d1689afe883b8131ec878a1f/scripts/slave/recipe_modules/chromium_android/example.py
[modify] https://crrev.com/cccc78db18bb9c80d1689afe883b8131ec878a1f/scripts/slave/recipes/android/builder.expected/full_chromium_perf_Android_Builder.json
[modify] https://crrev.com/cccc78db18bb9c80d1689afe883b8131ec878a1f/scripts/slave/recipes/android/builder.expected/full_chromium_perf_Android_arm64_Builder.json
[modify] https://crrev.com/cccc78db18bb9c80d1689afe883b8131ec878a1f/scripts/slave/recipes/android/builder.py
[modify] https://crrev.com/cccc78db18bb9c80d1689afe883b8131ec878a1f/scripts/slave/recipe_modules/chromium_android/api.py
[modify] https://crrev.com/cccc78db18bb9c80d1689afe883b8131ec878a1f/scripts/slave/recipe_modules/chromium_android/example.expected/resource_size_builder_basic.json

Project Member

Comment 14 by bugdroid1@chromium.org, May 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/2c5dd84cc74d0a650aa4cdc040daa8103124a7c4

commit 2c5dd84cc74d0a650aa4cdc040daa8103124a7c4
Author: Andrew Grieve <agrieve@chromium.org>
Date: Thu May 04 21:06:27 2017

Revert "Reland: Run "supersize archive" on Android perf builders"

This reverts commit cccc78db18bb9c80d1689afe883b8131ec878a1f.

Reason for revert: Still wrong. --apk-file, not --apk-path

Original change's description:
> Reland: Run "supersize archive" on Android perf builders
> 
> This reverts commit 1130031d6393e79d1954c3554ce994babc5f3ea5.
> 
> Reason for reland: Added "archive" argument.
> 
> TBR=agrieve@chromium.org,martiniss@chromium.org,chromium-reviews@chromium.org,jbudorick@chromium.org
> BUG= 711102 
> 
> Change-Id: Ic5a3687927ce905cbd58819ac472bf269aef8e59
> Reviewed-on: https://chromium-review.googlesource.com/496526
> Reviewed-by: Andrew Grieve <agrieve@chromium.org>
> Reviewed-by: John Budorick <jbudorick@chromium.org>
> Commit-Queue: Andrew Grieve <agrieve@chromium.org>
> 

TBR=agrieve@chromium.org,martiniss@chromium.org,chromium-reviews@chromium.org,jbudorick@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 711102 

Change-Id: I65ba88b848d9d4c17099069c4e733e83eb6b6528
Reviewed-on: https://chromium-review.googlesource.com/496766
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>

[modify] https://crrev.com/2c5dd84cc74d0a650aa4cdc040daa8103124a7c4/scripts/slave/recipe_modules/chromium_android/example.py
[modify] https://crrev.com/2c5dd84cc74d0a650aa4cdc040daa8103124a7c4/scripts/slave/recipes/android/builder.expected/full_chromium_perf_Android_Builder.json
[modify] https://crrev.com/2c5dd84cc74d0a650aa4cdc040daa8103124a7c4/scripts/slave/recipes/android/builder.expected/full_chromium_perf_Android_arm64_Builder.json
[modify] https://crrev.com/2c5dd84cc74d0a650aa4cdc040daa8103124a7c4/scripts/slave/recipes/android/builder.py
[modify] https://crrev.com/2c5dd84cc74d0a650aa4cdc040daa8103124a7c4/scripts/slave/recipe_modules/chromium_android/api.py
[modify] https://crrev.com/2c5dd84cc74d0a650aa4cdc040daa8103124a7c4/scripts/slave/recipe_modules/chromium_android/example.expected/resource_size_builder_basic.json

Project Member

Comment 15 by bugdroid1@chromium.org, May 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/3fbbeef094717d4e371d78ec0fe2ca71bcaac765

commit 3fbbeef094717d4e371d78ec0fe2ca71bcaac765
Author: Andrew Grieve <agrieve@chromium.org>
Date: Thu May 04 22:05:43 2017

Reland #2: Run "supersize archive" on Android perf builders

Reason for reland: --apk-path -> --apk-file

TBR=agrieve@chromium.org,martiniss@chromium.org,chromium-reviews@chromium.org,jbudorick@chromium.org
BUG= 711102 

Change-Id: I92efe0788e7fc0f1ce7a0e50507e6daf127155f3
Reviewed-on: https://chromium-review.googlesource.com/496767
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>

[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipe_modules/chromium_android/example.py
[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipes/android/builder.expected/full_chromium_perf_Android_Builder.json
[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipes/android/builder.expected/full_chromium_perf_Android_arm64_Builder.json
[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipes/android/builder.py
[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipe_modules/chromium_android/api.py
[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipe_modules/chromium_android/example.expected/resource_size_builder_basic.json

Project Member

Comment 16 by bugdroid1@chromium.org, May 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/3fbbeef094717d4e371d78ec0fe2ca71bcaac765

commit 3fbbeef094717d4e371d78ec0fe2ca71bcaac765
Author: Andrew Grieve <agrieve@chromium.org>
Date: Thu May 04 22:05:43 2017

Reland #2: Run "supersize archive" on Android perf builders

Reason for reland: --apk-path -> --apk-file

TBR=agrieve@chromium.org,martiniss@chromium.org,chromium-reviews@chromium.org,jbudorick@chromium.org
BUG= 711102 

Change-Id: I92efe0788e7fc0f1ce7a0e50507e6daf127155f3
Reviewed-on: https://chromium-review.googlesource.com/496767
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>

[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipe_modules/chromium_android/example.py
[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipes/android/builder.expected/full_chromium_perf_Android_Builder.json
[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipes/android/builder.expected/full_chromium_perf_Android_arm64_Builder.json
[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipes/android/builder.py
[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipe_modules/chromium_android/api.py
[modify] https://crrev.com/3fbbeef094717d4e371d78ec0fe2ca71bcaac765/scripts/slave/recipe_modules/chromium_android/example.expected/resource_size_builder_basic.json

Status: Fixed (was: Available)
Labels: -binary-size Performance-Size

Sign in to add a comment