Issue metadata
Sign in to add a comment
|
Chrome Linux ships a 34 MB nacl_helper binary |
||||||||||||||||||||||
Issue descriptionIn 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.
,
Jul 25 2017
Brad - is this something you can help triage?
,
Jul 25 2017
Happened between Chrome 57 and Chrome 58.
,
Jul 25 2017
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
,
Jul 25 2017
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.")
,
Jul 25 2017
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
,
Jul 25 2017
looks like that CL made nacl depend on content. Though I wonder why LTO didn't optimize away the unneeded symbols.
,
Jul 25 2017
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.
,
Jul 25 2017
Well, since everyone jumped in to point out the problem, I'll just try to write the fix: https://chromium-review.googlesource.com/584193
,
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
,
Jul 26 2017
And now https://chromeperf.appspot.com/report?sid=369b9a7d24356f1135d03ccb9d256e3331810b0abf7018af0babb4e5521d5a1c&start_rev=489000&end_rev=490000 |
|||||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||||
Comment 1 by thomasanderson@chromium.org
, Jul 25 2017Labels: -Type-Bug -Pri-2 Pri-1 Type-Bug-Regression