New issue
Advanced search Search tips

Issue 722999 link

Starred by 1 user

Issue metadata

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



Sign in to add a comment

CSWTCH.123 symbols should not have {shared}/3 in their paths

Project Member Reported by agrieve@chromium.org, May 16 2017

Issue description

Although these symbols appear in many .o files, they do not actually represent the same symbols, and so should not actually have their paths merged.


 
More such symbols:

84)     14788 (94.9%) r@0x2b32ad0  32      components/ntp_tiles/popular_sites_impl.cc
             ._93
85)     14796 (95.0%) r@0x2b90268  8       third_party/webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
             ._71
86)     14820 (95.1%) r@Group      24      {no path}
             ._72 (count=2)
87)     14860 (95.4%) r@Group      40      {no path}
             ._73 (count=2)
88)     14868 (95.4%) r@0x2b902a0  8       third_party/webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
             ._75
89)     14884 (95.6%) r@Group      16      {no path}
             ._76 (count=2)
90)     14900 (95.7%) r@0x2b902b0  16      third_party/webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
             ._78
91)     14908 (95.7%) r@0x2b902c8  8       third_party/webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
             ._74
92)     14916 (95.8%) r@0x2b902d0  8       third_party/webrtc/modules/video_coding/codecs/vp8/default_temporal_layers.cc
             ._77
93)     14932 (95.9%) r@0x2b91588  16      chrome/browser/ui/webui/snippets_internals_message_handler.cc
             ._86
94)     14940 (95.9%) r@0x2b96470  8       components/ntp_snippets/remote/remote_suggestions_scheduler_impl.cc
             ._61
95)     14972 (96.1%) r@0x2b99618  32      chrome/browser/android/vr_shell/gltf_asset.cc
             ._56
96)     14980 (96.2%) r@0x2b99c58  8       chrome/browser/android/vr_shell/vr_shell_gl.cc
             ._435
97)     15004 (96.3%) r@0x2bbc380  24      third_party/WebKit/Source/core/workers/ParentFrameTaskRunners.cpp
             ._439
98)     15020 (96.4%) r@0x2bbde00  16      third_party/WebKit/Source/modules/vr/VRDisplay.cpp
             ._465
99)     15036 (96.5%) r@0x2bbde10  16      third_party/WebKit/Source/modules/vr/VRDisplay.cpp
             ._466
100)    15052 (96.6%) r@0x2bc1118  16      content/renderer/media/user_media_client_impl.cc
             ._450
101)    15108 (97.0%) r@Group      56      {no path}
             .Lswitch.table (count=2)
120)    15553 (99.8%) d@0x2cf7770  40      third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libport_logging_android.pic.a_logging.pic.o
             .Lswitch.table
121)    15569 (99.9%) d@0x2cf7790  16      third_party/gvr-android-sdk/libgvr_shim_static_arm.a/libcontroller_api_impl.a_controller_api_impl.o
             .Lswitch.table.45
122)    15577 (100.0%) d@0x2d67020  8       third_party/ffmpeg/{shared}/8
             __compound_literal.0
Project Member

Comment 3 by bugdroid1@chromium.org, May 17 2017

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

commit c929e49f051f0414e27d6e3cca9c7c4163f16c61
Author: Andrew Grieve <agrieve@chromium.org>
Date: Wed May 17 19:52:53 2017

supersize: No name modifying in archive. Don't cluster cross-path.  Cluster C clones

This latest round of tweaks to NormalizeNames() made me realize that
when the logic there is wrong, we can't undo it on existing .size files.
So, this now skips calling NormalizeNames() during archive. Growse .size
files by ~100kb.

The recent change to Cluster() was merging together symbols from
different object files. This is a problem because queries are often
based on path, and when a group has multiple paths it returns None.
Cluster() now uses object_path in the key, and GroupedByFullName() is
added for when it's useful to actually group cross-paths.

Clones that are for symbols in .c files are now recognized by
NormalizeNames(). E.g.: "get_file_size.constprop.1"

Compiler-generated symbols such as "CSWTCH.123" are now ignored by nm.py
so that two different object paths that have such a symbol no longer
have their paths merged (since in this case, the symbols actually are
different).

BUG= 722999 ,  722997 

Change-Id: I6d4406c29f4b4383b825af7491dd943b2070f4e6
Reviewed-on: https://chromium-review.googlesource.com/507547
Reviewed-by: Eric Stevenson <estevenson@chromium.org>
Commit-Queue: Andrew Grieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#472539}
[modify] https://crrev.com/c929e49f051f0414e27d6e3cca9c7c4163f16c61/tools/binary_size/libsupersize/archive.py
[modify] https://crrev.com/c929e49f051f0414e27d6e3cca9c7c4163f16c61/tools/binary_size/libsupersize/console.py
[modify] https://crrev.com/c929e49f051f0414e27d6e3cca9c7c4163f16c61/tools/binary_size/libsupersize/integration_test.py
[modify] https://crrev.com/c929e49f051f0414e27d6e3cca9c7c4163f16c61/tools/binary_size/libsupersize/models.py
[modify] https://crrev.com/c929e49f051f0414e27d6e3cca9c7c4163f16c61/tools/binary_size/libsupersize/nm.py
[modify] https://crrev.com/c929e49f051f0414e27d6e3cca9c7c4163f16c61/tools/binary_size/libsupersize/testdata/Console.golden
[modify] https://crrev.com/c929e49f051f0414e27d6e3cca9c7c4163f16c61/tools/binary_size/libsupersize/testdata/Diff_NullDiff.golden
[modify] https://crrev.com/c929e49f051f0414e27d6e3cca9c7c4163f16c61/tools/binary_size/libsupersize/testdata/FullDescription.golden
[modify] https://crrev.com/c929e49f051f0414e27d6e3cca9c7c4163f16c61/tools/binary_size/libsupersize/testdata/SymbolGroupMethods.golden

Status: Fixed (was: Assigned)

Sign in to add a comment