New issue
Advanced search Search tips

Issue 721779 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug-Regression



Sign in to add a comment

7.9% regression in sizes/libcronet.so on android_cronet_arm64_builder at 471145:471151

Project Member Reported by xunji...@chromium.org, May 12 2017

Issue description

Performance dashboard identified a 7.9% regression in sizes/libcronet.so on android_cronet_arm64_builder at revision range 471145:471151. Graph: https://chromeperf.appspot.com/report?masters=ChromiumAndroid&bots=android_cronet_arm64_builder&tests=sizes%2Flibcronet.so&checked=libcronet.so%2Clibcronet.so_ref%2Cref&rev=471151


Cronet binaries increase for 5%-9%.
We need to bisect.
 

r471127 - r471207

android_cronet_builder_dbg	sizes	libcronet.so	4.5%	266.0 KiB
android_cronet_builder	sizes	libcronet.so	5.1%	152.0 KiB
android_cronet_armv6_builder	sizes	libcronet.so	5.8%	228.0 KiB
android_cronet_data_reduction_proxy_builder	sizes	libcronet.so	5.1%	152.0 KiB
android_cronet_m64_builder	sizes	libcronet.so	7.9%	376.0 KiB
android_cronet_m64_perf	sizes	libcronet.so	7.9%	376.0 KiB
android_cronet_l_builder	sizes	libcronet.so	5.1%	152.0 KiB
android_cronet_arm64_builder_dbg	sizes	libcronet.so	8.2%	736.0 KiB
android_cronet_arm64_builder	sizes	libcronet.so	7.9%	376.0 KiB
Cc: thakis@chromium.org p...@chromium.org
Labels: -Pri-2 Pri-1
Bisecting gives me 

[build: Use ICF more often now that our binutils is patched.]
https://codereview.chromium.org/2878513002

+pcc, thakis@ Could you take a look?
Cronet is very binary size sensitive. Having a 300KB regression blocks our binary update schedule.

Comment 3 by thakis@chromium.org, May 12 2017

Ah, the !is_android in that change is too strong. Android used --icf=all, except on x86 where it used no ICF, and on x64 where it used --icf=safe if using clang.

So I think we probably want to restore quite a bit of that conditional for android.
Cc: -p...@chromium.org
Labels: OS-Android
Owner: p...@chromium.org
Status: Assigned (was: Untriaged)
Thanks thakis@. That makes sense. Assigning this to pcc@ to restore the conditional for android.
pcc@: do you think we can get a fix in by next Monday (05/15)? 

Comment 5 by p...@chromium.org, May 12 2017

If icf=safe worked at all on Android it must have been by chance; I think icf=safe would still allow folding a non-address-taken align=1 function into an address-taken align=2 function.

Sent https://codereview.chromium.org/2879673003 which makes the disablement architecture specific.
Labels: -Binary-Size Performance-Size
Project Member

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

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/03a5248bcceec84a9d29b1ed3ada8bc5fd23d3c3

commit 03a5248bcceec84a9d29b1ed3ada8bc5fd23d3c3
Author: pcc <pcc@chromium.org>
Date: Fri May 12 22:14:12 2017

build: Allow ICF on architectures other than x86 and x64.

The ICF bug only affects x86 and x64, so we can still use ICF when
targeting other architectures.

BUG= 721779 
R=thakis@chromium.org

Review-Url: https://codereview.chromium.org/2879673003
Cr-Commit-Position: refs/heads/master@{#471459}

[modify] https://crrev.com/03a5248bcceec84a9d29b1ed3ada8bc5fd23d3c3/build/config/compiler/BUILD.gn

Status: Fixed (was: Assigned)
Verified through perf dashboard, all sizes are back to where they were before.

Sign in to add a comment