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

Issue 748294 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

Chrome Linux ships a 34 MB nacl_helper binary

Project Member Reported by thestig@chromium.org, Jul 25 2017

Issue description

In Chrome Linux 59, /opt/google/chrome/nacl_helper is 34 MB. Back in Chrome 51, it was only 2.4 MB. We should figure out what happened and see if we can reduce the binary size.
 
Cc: thomasanderson@chromium.org timbrown@chromium.org
Labels: -Type-Bug -Pri-2 Pri-1 Type-Bug-Regression
Owner: bradnelson@chromium.org
Status: Assigned (was: Untriaged)
Brad - is this something you can help triage?
Happened between Chrome 57 and Chrome 58.
Between 58.0.3008.0 and 58.0.3009.0 to be more specific. Changelog: https://chromium.googlesource.com/chromium/src/+log/58.0.3008.0..58.0.3009.0?pretty=fuller&n=10000
Looks like the regression is here:
2.3MB -> 36MB
https://chromeperf.appspot.com/report?sid=369b9a7d24356f1135d03ccb9d256e3331810b0abf7018af0babb4e5521d5a1c&start_rev=448938&end_rev=451128
Due to https://codereview.chromium.org/2679323006 ("Remove content/browser dependency on WebFontRenderStyle.")


Owner: jam@chromium.org
Re-assigning to jam@

Looking at a nacl_helper w/o debug symbols, many sections are way bigger in size. We are probably linking in something we don't need.

.rela.dyn     +3.4 MB
.text         +24.8 MB
.data.rel.ro  +1.6 MB
looks like that CL made nacl depend on content.  Though I wonder why LTO didn't optimize away the unneeded symbols.
It looks like NaCl code is the only caller to content::MakeSharedMemorySegmentViaIPC(). Maybe we should move that into a NaCl directory and drop the content/child dependency.
Cc: jam@chromium.org
Owner: thestig@chromium.org
Status: Started (was: Assigned)
Well, since everyone jumped in to point out the problem, I'll just try to write the fix: https://chromium-review.googlesource.com/584193
Project Member

Comment 10 by bugdroid1@chromium.org, Jul 26 2017

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

commit 84e0e39599244ade3584a0b859d8defd794d8793
Author: Lei Zhang <thestig@chromium.org>
Date: Wed Jul 26 19:40:54 2017

Move content::MakeSharedMemorySegmentViaIPC() to content/common.

So nacl_helper can stop dragging in all of content/child, which results
in a large executable size increase on Linux at least.

BUG= 748294 
TBR=bradnelson@chromium.org

Change-Id: I9e6d64980bb2ff3bf5083a472ae9e0e75d215381
Reviewed-on: https://chromium-review.googlesource.com/584193
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489726}
[modify] https://crrev.com/84e0e39599244ade3584a0b859d8defd794d8793/components/nacl/loader/BUILD.gn
[modify] https://crrev.com/84e0e39599244ade3584a0b859d8defd794d8793/components/nacl/loader/DEPS
[modify] https://crrev.com/84e0e39599244ade3584a0b859d8defd794d8793/components/nacl/loader/nacl_listener.cc
[modify] https://crrev.com/84e0e39599244ade3584a0b859d8defd794d8793/content/child/BUILD.gn
[delete] https://crrev.com/639b61ae53bb47d9de383cec09024c2150f2d47b/content/child/child_process_sandbox_support_impl_shm_linux.cc
[modify] https://crrev.com/84e0e39599244ade3584a0b859d8defd794d8793/content/common/common_sandbox_support_linux.cc
[modify] https://crrev.com/84e0e39599244ade3584a0b859d8defd794d8793/content/public/child/child_process_sandbox_support_linux.h
[modify] https://crrev.com/84e0e39599244ade3584a0b859d8defd794d8793/content/public/common/common_sandbox_support_linux.h

Sign in to add a comment