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

Issue 758566 link

Starred by 5 users

Issue metadata

Status: Assigned
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 2
Type: Bug

Blocked on: View detail
issue 801182
issue 917704
issue 776702
issue 893981
issue 894827
issue 913436



Sign in to add a comment

Reduce code page faults on Android Go

Project Member Reported by lizeb@chromium.org, Aug 24 2017

Issue description

512MB Android devices have issues with swapping code pages in and out.

This is a tracking bug.
 
Labels: -Performance Performance-Memory
Project Member

Comment 2 by bugdroid1@chromium.org, Aug 31 2017

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

commit 448ee88604a3cddc8744d033425ee1833feb3113
Author: Benoit Lize <lizeb@chromium.org>
Date: Thu Aug 31 13:32:12 2017

android: Collect and log minor/major page faults.

Allows to report minor and major page faults in tracing. This is used as
part of an effort to reduce major page faults on low-end Android
devices.

This adds:
- Support in ProcessMetrics for minor and major page faults on Linux and
  Android.
- Tracing support, accessible from Java.
- Logs the page faults right after native library load.

Bug: 758566
Change-Id: I6baf28d63e8f1e510686937eba9c0df2795e27df
Reviewed-on: https://chromium-review.googlesource.com/632616
Reviewed-by: Dmitry Skiba <dskiba@chromium.org>
Reviewed-by: Nico Weber <thakis@chromium.org>
Reviewed-by: Andrew Grieve <agrieve@chromium.org>
Commit-Queue: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#498845}
[modify] https://crrev.com/448ee88604a3cddc8744d033425ee1833feb3113/base/android/java/src/org/chromium/base/SysUtils.java
[modify] https://crrev.com/448ee88604a3cddc8744d033425ee1833feb3113/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
[modify] https://crrev.com/448ee88604a3cddc8744d033425ee1833feb3113/base/android/sys_utils.cc
[modify] https://crrev.com/448ee88604a3cddc8744d033425ee1833feb3113/base/process/internal_linux.h
[modify] https://crrev.com/448ee88604a3cddc8744d033425ee1833feb3113/base/process/process_metrics.h
[modify] https://crrev.com/448ee88604a3cddc8744d033425ee1833feb3113/base/process/process_metrics_linux.cc
[modify] https://crrev.com/448ee88604a3cddc8744d033425ee1833feb3113/base/process/process_metrics_unittest.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Sep 7 2017

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

commit 72aed26f38a0f5a7be558eb44ba06d7739d77e72
Author: Benoit Lize <lizeb@chromium.org>
Date: Thu Sep 07 15:20:46 2017

android: Speed up function instrumentation.

Function instrumentation is used on Android to establish a startup
profile. Its performance matters to get a realistic ordering. This CL
adds performance tests to the instrumentation, and also improves
performance.

On a Nexus 5X, here are the timings:

Before:
[ RUN      ] CygprofilePerfTest.CreateEntries_10_10000
*RESULT AddEntryCostPerCall: = 928.1 ns
[ RUN      ] CygprofilePerfTest.CreateEntries_100_10000
*RESULT AddEntryCostPerCall: = 468.257 ns
[ RUN      ] CygprofilePerfTest.CreateEntries_10_100000
*RESULT AddEntryCostPerCall: = 1094.441 ns
[ RUN      ] CygprofilePerfTest.CreateEntries_100_1000000
*RESULT AddEntryCostPerCall: = 927.9688 ns

After:
[ RUN      ] CygprofilePerfTest.CreateEntries_10_10000
*RESULT AddEntryCostPerCall: = 638.81 ns
[ RUN      ] CygprofilePerfTest.CreateEntries_100_10000
*RESULT AddEntryCostPerCall: = 242.751 ns
[ RUN      ] CygprofilePerfTest.CreateEntries_10_100000
*RESULT AddEntryCostPerCall: = 694.71 ns
[ RUN      ] CygprofilePerfTest.CreateEntries_100_1000000
*RESULT AddEntryCostPerCall: = 558.0389 ns

This is mostly achieved by removing unnecessary syscalls, from a suggestion by
pasko@.

Bug: 758566
Change-Id: Icdf5db3d10ec471dcac1de58f377cf9a0681af16
Reviewed-on: https://chromium-review.googlesource.com/654606
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500306}
[modify] https://crrev.com/72aed26f38a0f5a7be558eb44ba06d7739d77e72/tools/cygprofile/BUILD.gn
[modify] https://crrev.com/72aed26f38a0f5a7be558eb44ba06d7739d77e72/tools/cygprofile/cygprofile.cc
[modify] https://crrev.com/72aed26f38a0f5a7be558eb44ba06d7739d77e72/tools/cygprofile/cygprofile.h
[add] https://crrev.com/72aed26f38a0f5a7be558eb44ba06d7739d77e72/tools/cygprofile/cygprofile_perftest.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 20 2017

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

commit a3fe293de75a0af9041af6a699590867d8eeea01
Author: Benoit Lize <lizeb@chromium.org>
Date: Fri Oct 20 10:24:52 2017

android: Upstream orderfile_generator.py.

orderfile_generator.py generates a new orderfile. It was previously
downstream. Although this code is now in Chromium, this is not enough
to generate an orderfile, as some paths are hardcoded to include the
Google repo.

Change-Id: Iab311985a601a7ecd916981478892b577d4da8df
Bug: 758566
Reviewed-on: https://chromium-review.googlesource.com/725707
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510396}
[add] https://crrev.com/a3fe293de75a0af9041af6a699590867d8eeea01/tools/cygprofile/orderfile_generator.py
[add] https://crrev.com/a3fe293de75a0af9041af6a699590867d8eeea01/tools/cygprofile/orderfile_generator_unittest.py
[modify] https://crrev.com/a3fe293de75a0af9041af6a699590867d8eeea01/tools/cygprofile/profile_android_startup.py

Comment 6 by lizeb@chromium.org, Oct 20 2017

Blockedon: 776702
Project Member

Comment 7 by bugdroid1@chromium.org, Oct 24 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/d51606b398e4f84163f574fc87efbaee921f4013

commit d51606b398e4f84163f574fc87efbaee921f4013
Author: Benoît Lizé <lizeb@google.com>
Date: Tue Oct 24 10:11:38 2017

Project Member

Comment 8 by bugdroid1@chromium.org, Oct 24 2017

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

commit d913be8e7e03161be7a03e2d6039e1632a31a08f
Author: Benoit Lize <lizeb@chromium.org>
Date: Tue Oct 24 13:38:27 2017

android: Fix typo in orderfile_generator.py.

Bug: 758566
Change-Id: If31aa4e9f51bb2883a2d350bd216a36484ce559d
Reviewed-on: https://chromium-review.googlesource.com/735541
Commit-Queue: Benoit L <lizeb@chromium.org>
Commit-Queue: Egor Pasko <pasko@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511131}
[modify] https://crrev.com/d913be8e7e03161be7a03e2d6039e1632a31a08f/tools/cygprofile/orderfile_generator.py

Project Member

Comment 9 by bugdroid1@chromium.org, Oct 25 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/a6625cf00710a32b439cfb47079f5dbee2264e74

commit a6625cf00710a32b439cfb47079f5dbee2264e74
Author: Benoît Lizé <lizeb@google.com>
Date: Wed Oct 25 11:42:03 2017

Project Member

Comment 10 by bugdroid1@chromium.org, Oct 25 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/7d4c550128c5baeb9722b65e9c8db199d8c4f369

commit 7d4c550128c5baeb9722b65e9c8db199d8c4f369
Author: Benoît Lizé <lizeb@google.com>
Date: Wed Oct 25 16:12:10 2017

Comment 11 by pasko@chromium.org, Oct 25 2017

Cc: jbudorick@chromium.org agrieve@chromium.org
jbudorick: FYI: Benoit just upstreamed most of the orderfile_generator in order to hack a new experimental pipeline on top of it. The goal is to order .text so that the common working set is compact and hence less of .text would be resident in memory.

While we are experimenting, it would probably be difficult to convert the thing to recipes. So asking to wait a bit until the dust settles.

agrieve: you already know this, this is just a more conveniently invasive way to keep you posted
Project Member

Comment 12 by bugdroid1@chromium.org, Oct 30 2017

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

commit 3fbd2a3e6f6e76327460b30352ca542fc5953c63
Author: Benoit Lize <lizeb@chromium.org>
Date: Mon Oct 30 10:44:47 2017

android: Adds the list of reached symbols to the component->page visualization.

This commits adds a new option to extract_symbols.py,
--reached-symbols-file, taking a list of reached symbols. It maps this
list with the page-level attribution, and represents it visually.

Bug: 758566
Change-Id: I76948ea3a2fae983479ab7e0750239a74a971ee9
Reviewed-on: https://chromium-review.googlesource.com/739504
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512466}
[modify] https://crrev.com/3fbd2a3e6f6e76327460b30352ca542fc5953c63/tools/android/native_lib_memory/extract_symbols.py
[modify] https://crrev.com/3fbd2a3e6f6e76327460b30352ca542fc5953c63/tools/android/native_lib_memory/visualize.css
[modify] https://crrev.com/3fbd2a3e6f6e76327460b30352ca542fc5953c63/tools/android/native_lib_memory/visualize.html
[modify] https://crrev.com/3fbd2a3e6f6e76327460b30352ca542fc5953c63/tools/android/native_lib_memory/visualize.js

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 30 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/334ede4fce87694f2768685924b006280a0f5d61

commit 334ede4fce87694f2768685924b006280a0f5d61
Author: Egor Pasko <pasko@chromium.org>
Date: Mon Oct 30 18:48:16 2017

Project Member

Comment 14 by bugdroid1@chromium.org, Oct 31 2017

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

commit 93e514e0b0cad3b275c81af25e76832030a949d0
Author: Egor Pasko <pasko@chromium.org>
Date: Tue Oct 31 13:32:36 2017

Rename orderfile_generator to orderfile_generator_backend

This is to avoid the presubmit warning 'Module import itself' from the
downstream script. The latter is harder to rename because it involves
updating bot configurations.

Bug: 758566
Change-Id: I55be18de5be2a148c4d8dd7662114a45e52bce40
Reviewed-on: https://chromium-review.googlesource.com/744013
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512815}
[rename] https://crrev.com/93e514e0b0cad3b275c81af25e76832030a949d0/tools/cygprofile/orderfile_generator_backend.py
[rename] https://crrev.com/93e514e0b0cad3b275c81af25e76832030a949d0/tools/cygprofile/orderfile_generator_backend_unittest.py

Project Member

Comment 15 by bugdroid1@chromium.org, Oct 31 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/clank/internal/apps/+/e7ae505a0228c387747af452b9a7271cfa2b2d55

commit e7ae505a0228c387747af452b9a7271cfa2b2d55
Author: Egor Pasko <pasko@chromium.org>
Date: Tue Oct 31 14:55:23 2017

Project Member

Comment 16 by bugdroid1@chromium.org, Nov 22 2017

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

commit 411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9
Author: Benoit Lize <lizeb@chromium.org>
Date: Wed Nov 22 15:33:20 2017

android: Optionally madvise(MADV_RANDOM) on .text.

This CL adds:

- "anchor" functions at the beginning and end of .text: these are
  already used in lightweight_cygprofile.cc, and require the orderfile
  to be properly constructed, which is the case since
  https://chromium-review.googlesource.com/753882. These functions are
  trickier for regular builds, as they use --icf=all.
- madvise(MADV_RANDOM): disable kernel readahead on a given range. This makes
  the reporting logic for code residency clearer, as it actually shows which
  pages are requested. This has to be called as early as possible and from all
  processes, and may be enabled in all builds at a later date. This is
  controlled by a new command-line flag, madvise-random-executable-code.

Bug: 758566
Change-Id: I8c7a5ca759b355b9e632d6ad027f8d9cd8fb84e8
Reviewed-on: https://chromium-review.googlesource.com/776895
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Camille Lamy <clamy@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518639}
[modify] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/base/BUILD.gn
[modify] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
[add] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/base/android/library_loader/anchor_functions.cc
[add] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/base/android/library_loader/anchor_functions.h
[modify] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/base/android/library_loader/library_loader_hooks.cc
[modify] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/base/android/library_loader/library_prefetcher.cc
[modify] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/base/android/library_loader/library_prefetcher.h
[modify] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/base/base_switches.cc
[modify] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/base/base_switches.h
[modify] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9/content/browser/utility_process_host_impl.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Nov 22 2017

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

commit 8e157d49242372de81d6804ffcb2e4be722efaa4
Author: Miriam Gershenson <mgersh@chromium.org>
Date: Wed Nov 22 16:05:18 2017

Revert "android: Optionally madvise(MADV_RANDOM) on .text."

This reverts commit 411a34f5e9b7e19c5b8ca4443e20f5d51e3fa8b9.

Reason for revert: Breaks compile on x86 builders: https://build.chromium.org/p/chromium.android/builders/Android%20Cronet%20x86%20Builder%20%28dbg%29/builds/72101, https://build.chromium.org/p/chromium.android/builders/Android%20Cronet%20x86%20Builder/builds/44466

Original change's description:
> android: Optionally madvise(MADV_RANDOM) on .text.
> 
> This CL adds:
> 
> - "anchor" functions at the beginning and end of .text: these are
>   already used in lightweight_cygprofile.cc, and require the orderfile
>   to be properly constructed, which is the case since
>   https://chromium-review.googlesource.com/753882. These functions are
>   trickier for regular builds, as they use --icf=all.
> - madvise(MADV_RANDOM): disable kernel readahead on a given range. This makes
>   the reporting logic for code residency clearer, as it actually shows which
>   pages are requested. This has to be called as early as possible and from all
>   processes, and may be enabled in all builds at a later date. This is
>   controlled by a new command-line flag, madvise-random-executable-code.
> 
> Bug: 758566
> Change-Id: I8c7a5ca759b355b9e632d6ad027f8d9cd8fb84e8
> Reviewed-on: https://chromium-review.googlesource.com/776895
> Commit-Queue: Benoit L <lizeb@chromium.org>
> Reviewed-by: Camille Lamy <clamy@chromium.org>
> Reviewed-by: Lei Zhang <thestig@chromium.org>
> Reviewed-by: Egor Pasko <pasko@chromium.org>
> Reviewed-by: agrieve <agrieve@chromium.org>
> Reviewed-by: Matthew Cary <mattcary@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#518639}

TBR=pasko@chromium.org,thestig@chromium.org,clamy@chromium.org,agrieve@chromium.org,lizeb@chromium.org,mattcary@chromium.org

Change-Id: Ia5cb28b8a8f39d3e585162aa2974451d3fd7be5e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 758566
Reviewed-on: https://chromium-review.googlesource.com/786050
Reviewed-by: Miriam Gershenson <mgersh@chromium.org>
Commit-Queue: Miriam Gershenson <mgersh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518645}
[modify] https://crrev.com/8e157d49242372de81d6804ffcb2e4be722efaa4/base/BUILD.gn
[modify] https://crrev.com/8e157d49242372de81d6804ffcb2e4be722efaa4/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
[delete] https://crrev.com/18bbcf8e4f287a95d99a70436ea2c690c0141791/base/android/library_loader/anchor_functions.cc
[delete] https://crrev.com/18bbcf8e4f287a95d99a70436ea2c690c0141791/base/android/library_loader/anchor_functions.h
[modify] https://crrev.com/8e157d49242372de81d6804ffcb2e4be722efaa4/base/android/library_loader/library_loader_hooks.cc
[modify] https://crrev.com/8e157d49242372de81d6804ffcb2e4be722efaa4/base/android/library_loader/library_prefetcher.cc
[modify] https://crrev.com/8e157d49242372de81d6804ffcb2e4be722efaa4/base/android/library_loader/library_prefetcher.h
[modify] https://crrev.com/8e157d49242372de81d6804ffcb2e4be722efaa4/base/base_switches.cc
[modify] https://crrev.com/8e157d49242372de81d6804ffcb2e4be722efaa4/base/base_switches.h
[modify] https://crrev.com/8e157d49242372de81d6804ffcb2e4be722efaa4/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/8e157d49242372de81d6804ffcb2e4be722efaa4/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/8e157d49242372de81d6804ffcb2e4be722efaa4/content/browser/utility_process_host_impl.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Nov 23 2017

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

commit 3c35531820609841001af012580f85c0b6f1be73
Author: Benoit Lize <lizeb@chromium.org>
Date: Thu Nov 23 15:32:26 2017

Reland "android: Optionally madvise(MADV_RANDOM) on .text."

This reverts commit 8e157d49242372de81d6804ffcb2e4be722efaa4.

Changes: Made ARM-only, as it doesn't compile on Android x86, and hasn't been
tested outside ARM.

Original change's description:
> android: Optionally madvise(MADV_RANDOM) on .text.
>
> This CL adds:
>
> - "anchor" functions at the beginning and end of .text: these are
>   already used in lightweight_cygprofile.cc, and require the orderfile
>   to be properly constructed, which is the case since
>   https://chromium-review.googlesource.com/753882. These functions are
>   trickier for regular builds, as they use --icf=all.
> - madvise(MADV_RANDOM): disable kernel readahead on a given range. This makes
>   the reporting logic for code residency clearer, as it actually shows which
>   pages are requested. This has to be called as early as possible and from all
>   processes, and may be enabled in all builds at a later date. This is
>   controlled by a new command-line flag, madvise-random-executable-code.
>
> Bug: 758566
> Change-Id: I8c7a5ca759b355b9e632d6ad027f8d9cd8fb84e8
> Reviewed-on: https://chromium-review.googlesource.com/776895
> Commit-Queue: Benoit L <lizeb@chromium.org>
> Reviewed-by: Camille Lamy <clamy@chromium.org>
> Reviewed-by: Lei Zhang <thestig@chromium.org>
> Reviewed-by: Egor Pasko <pasko@chromium.org>
> Reviewed-by: agrieve <agrieve@chromium.org>
> Reviewed-by: Matthew Cary <mattcary@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#518639}

TBR=pasko@chromium.org,thestig@chromium.org,mgersh@chromium.org,clamy@chromium.org,agrieve@chromium.org,lizeb@chromium.org,mattcary@chromium.org

Change-Id: I8e51971c2abeb1672ce8769ff55d4c3d69f1201a
Bug: 758566
Reviewed-on: https://chromium-review.googlesource.com/786031
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518945}
[modify] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/base/BUILD.gn
[modify] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/base/android/java/src/org/chromium/base/library_loader/LibraryLoader.java
[add] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/base/android/library_loader/anchor_functions.cc
[add] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/base/android/library_loader/anchor_functions.h
[modify] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/base/android/library_loader/library_loader_hooks.cc
[modify] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/base/android/library_loader/library_prefetcher.cc
[modify] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/base/android/library_loader/library_prefetcher.h
[modify] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/base/base_switches.cc
[modify] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/base/base_switches.h
[modify] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/3c35531820609841001af012580f85c0b6f1be73/content/browser/utility_process_host_impl.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Nov 27 2017

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

commit fb0fedd89d33cf5279ca1dfceab0186773e38a1b
Author: Benoit Lize <lizeb@chromium.org>
Date: Mon Nov 27 11:15:25 2017

tools/android: Overlay residency data on page -> code mappings.

This CL updates the visualization and processing of symbols in the
native library to overlay residency data with the code page component
attribution.

Bug: 758566
Change-Id: Ia6f9c9bec07083da3eaa34c03994ccdc55ea5e5f
Reviewed-on: https://chromium-review.googlesource.com/782580
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519273}
[modify] https://crrev.com/fb0fedd89d33cf5279ca1dfceab0186773e38a1b/base/android/library_loader/library_prefetcher.cc
[modify] https://crrev.com/fb0fedd89d33cf5279ca1dfceab0186773e38a1b/tools/android/native_lib_memory/extract_symbols.py
[modify] https://crrev.com/fb0fedd89d33cf5279ca1dfceab0186773e38a1b/tools/android/native_lib_memory/process_residency.py
[modify] https://crrev.com/fb0fedd89d33cf5279ca1dfceab0186773e38a1b/tools/android/native_lib_memory/visualize.html
[modify] https://crrev.com/fb0fedd89d33cf5279ca1dfceab0186773e38a1b/tools/android/native_lib_memory/visualize.js

Project Member

Comment 20 by bugdroid1@chromium.org, Dec 7 2017

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

commit a1b64f89a0c1d18c384818b4fa227c407029cf72
Author: Benoit Lize <lizeb@chromium.org>
Date: Thu Dec 07 10:12:50 2017

tools/cygprofile: Add custom URLs and scrolling to profile_android_startup.

Allows to collect profiling data from several page loads, and to scroll
the screen while doing so.

Bug: 758566
Change-Id: I4f0bb8fc167e69dea349dbd4b5ee733193996e41
Reviewed-on: https://chromium-review.googlesource.com/801016
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522392}
[modify] https://crrev.com/a1b64f89a0c1d18c384818b4fa227c407029cf72/tools/android/native_lib_memory/process_residency.py
[modify] https://crrev.com/a1b64f89a0c1d18c384818b4fa227c407029cf72/tools/cygprofile/orderfile_generator_backend.py
[modify] https://crrev.com/a1b64f89a0c1d18c384818b4fa227c407029cf72/tools/cygprofile/profile_android_startup.py

Project Member

Comment 21 by bugdroid1@chromium.org, Dec 8 2017

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

commit 96236669dbf109020e839ec68f0be2b0223d8855
Author: Benoit Lize <lizeb@chromium.org>
Date: Fri Dec 08 17:49:14 2017

tools/cygprofile: Tool to compare orderfiles.

This allows to see whether a given orderfile roll significantly changed
the orderfile, and also to check orderfile stability (as a set of symbols).

For instance, a typical roll would be:
$ python tools/cygprofile/compare_orderfiles.py --from-commit
bb04f2f86c5f1880d193d06279e23fb700bd6fb8
[...]
Symbols count:
        first:  190265
        second: 190276
New symbols = 33
Removed symbols = 22

Whereas for a more significant one (see crbug.com/792828):
$ python tools/cygprofile/compare_orderfiles.py --from-commit
4c1e7a85c8bac01731203990fd4b66a7b5b19dd9
[...]
Symbols count:
        first:  428730
        second: 190074
New symbols = 16952
Removed symbols = 255608

Bug: 792828,758566, 776702 
Change-Id: I9a3676874218ba651670136774214184c616a792
Reviewed-on: https://chromium-review.googlesource.com/817555
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Commit-Queue: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522815}
[add] https://crrev.com/96236669dbf109020e839ec68f0be2b0223d8855/tools/cygprofile/compare_orderfiles.py

Project Member

Comment 22 by bugdroid1@chromium.org, Dec 22 2017

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

commit 83a0342cea67e1a2cf6f1fc2bb3a178007df7578
Author: Benoit Lize <lizeb@chromium.org>
Date: Fri Dec 22 16:20:35 2017

tools/cygprofile: Collect multiple profiles.

This adds collections of several "phases" for each process, evenly
spaced. Additional processing will allow to construct a list of startup
only / commonly called functions.

Bug: 758566
Change-Id: I644fc80af42451d62a7d5d71dd0506680de80cae
Reviewed-on: https://chromium-review.googlesource.com/840021
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#526004}
[modify] https://crrev.com/83a0342cea67e1a2cf6f1fc2bb3a178007df7578/tools/cygprofile/delayed_dumper.cc
[modify] https://crrev.com/83a0342cea67e1a2cf6f1fc2bb3a178007df7578/tools/cygprofile/lightweight_cygprofile.cc
[modify] https://crrev.com/83a0342cea67e1a2cf6f1fc2bb3a178007df7578/tools/cygprofile/lightweight_cygprofile.h
[modify] https://crrev.com/83a0342cea67e1a2cf6f1fc2bb3a178007df7578/tools/cygprofile/process_profiles.py

Comment 23 by pasko@chromium.org, Jan 11 2018

Blockedon: 801182
Project Member

Comment 24 by bugdroid1@chromium.org, Jan 21 2018

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

commit 33e8d99a86f6f6645c13ceb4165b28b3f9b91520
Author: Matthew Cary <mattcary@chromium.org>
Date: Sun Jan 21 04:51:29 2018

cygprofile: Clean up process_profiles.py.

I've found that I've made some errors in producing the combined
instrumented builds due to my confusion between symbol names, symbols
and offsets. This CL attempts to clean up the orderfile processing by
making a more clear line between instrumentation profile output and
the orderfile, specifically by dealing with binary offsets rather than
symbol names in process_profile. This does not change any of what
happens in the orderfile generator, but makes it much easier to use
process_profile correctly when generating orderfiles by hand.

This is just the first step, the next step will be to make the
processing done in cyglog_to_orderfile.py easily accessible as well,
combined with having the orderfile do import-and-function-call rather
than write-files-and-execute-subprocess. Probably there will also be
some rearranging of the current bundle of scripts into a coherent
library.

Bug: 758566
Change-Id: I0810dc4df994d95dbc411bd73b1a67be0eadb602
Reviewed-on: https://chromium-review.googlesource.com/870052
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530772}
[modify] https://crrev.com/33e8d99a86f6f6645c13ceb4165b28b3f9b91520/tools/cygprofile/orderfile_generator_backend.py
[modify] https://crrev.com/33e8d99a86f6f6645c13ceb4165b28b3f9b91520/tools/cygprofile/process_profiles.py
[modify] https://crrev.com/33e8d99a86f6f6645c13ceb4165b28b3f9b91520/tools/cygprofile/process_profiles_unittest.py

Project Member

Comment 25 by bugdroid1@chromium.org, Jan 22 2018

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

commit 0f1f681a563e1aa9dc330c533ffb48f16ba67f3c
Author: Matthew Cary <mattcary@chromium.org>
Date: Mon Jan 22 10:40:51 2018

cygprofile: Add run group processing to process_profiles.py

The new orderfile work will require dealing with phased
instrumentation (eg, startup vs steady state profiles) as well as
combining profiles from multiple instrumentation runs. This extends
process_profiles to deal with that consistently with how production
orderfiles are generated.

The extensive class comment for ProfileManager explains it all in more
detail.

Bug: 758566
Change-Id: Ia360769d9ffefceea53eeb09f02ba16ae768c539
Reviewed-on: https://chromium-review.googlesource.com/873210
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530832}
[modify] https://crrev.com/0f1f681a563e1aa9dc330c533ffb48f16ba67f3c/tools/cygprofile/orderfile_generator_backend.py
[modify] https://crrev.com/0f1f681a563e1aa9dc330c533ffb48f16ba67f3c/tools/cygprofile/process_profiles.py
[modify] https://crrev.com/0f1f681a563e1aa9dc330c533ffb48f16ba67f3c/tools/cygprofile/process_profiles_unittest.py

Project Member

Comment 26 by bugdroid1@chromium.org, Jan 30 2018

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

commit 58a3eddff4816cd2ad3e50a589a0f280e57f1110
Author: Matthew Cary <mattcary@chromium.org>
Date: Tue Jan 30 13:02:10 2018

cyglog: Phased ordefile processing.

Adds analysis of phased lightweight instrumentation, that is
instrumentation which records several memory dumps for different
phases of program execution, such as startup or interaction.

Bug: 758566
Change-Id: Id84b2bd8f5a48865e3175d9164e8a6575d5be819
Reviewed-on: https://chromium-review.googlesource.com/883448
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532849}
[add] https://crrev.com/58a3eddff4816cd2ad3e50a589a0f280e57f1110/tools/cygprofile/phased_orderfile.py
[add] https://crrev.com/58a3eddff4816cd2ad3e50a589a0f280e57f1110/tools/cygprofile/phased_orderfile_unittest.py
[modify] https://crrev.com/58a3eddff4816cd2ad3e50a589a0f280e57f1110/tools/cygprofile/process_profiles.py
[modify] https://crrev.com/58a3eddff4816cd2ad3e50a589a0f280e57f1110/tools/cygprofile/process_profiles_unittest.py

Project Member

Comment 27 by bugdroid1@chromium.org, Jan 30 2018

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

commit 93f3cab38ca6017ff3c3c16f1d8769b006c858f7
Author: Benoit Lize <lizeb@chromium.org>
Date: Tue Jan 30 15:16:20 2018

android: Add the start/end of ordered text markers to the orderfile.

A forthcoming CL will add the symbols to the binary, but will also
enforce their ordering, so the orderfile has to contain these symbols
first.
Adding the symbols early is not an issue, as linkers ignore unkown
entries.

Bug: 758566
Change-Id: I6580738f754067ce74acecd5deb796da246bf57d
Reviewed-on: https://chromium-review.googlesource.com/893142
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Commit-Queue: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532878}
[modify] https://crrev.com/93f3cab38ca6017ff3c3c16f1d8769b006c858f7/tools/cygprofile/patch_orderfile.py

Project Member

Comment 28 by bugdroid1@chromium.org, Feb 7 2018

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

commit 0162a9b1e7d6902134b1d4d12a8aa33722a84b8d
Author: Matthew Cary <mattcary@chromium.org>
Date: Wed Feb 07 13:06:13 2018

cygprofile: Change error logging to IMMEDIATE_CRASH.

If this error is hit during static initialization --- which is
probable if the sentinel functions are out-of-order, calling
LOG(FATAL) can deadlock.  Instead we crash and hope that the system
will give some clue to the problem.

Bug: 758566
Change-Id: Ia48eaf9d636a83864073375977b41a8dd6f1dfe2
Reviewed-on: https://chromium-review.googlesource.com/904243
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534992}
[modify] https://crrev.com/0162a9b1e7d6902134b1d4d12a8aa33722a84b8d/tools/cygprofile/lightweight_cygprofile.cc

Project Member

Comment 29 by bugdroid1@chromium.org, Feb 8 2018

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

commit 0769eb7bd68ab99895c5428055dee1038709cf35
Author: Matthew Cary <mattcary@chromium.org>
Date: Thu Feb 08 09:22:32 2018

Enable instrumenting webview.

This makes an instrumented monochrome build possible.

Bug: 758566
Change-Id: Ia68d54c15033b97a086cc0ce6142a399f1345c06
Reviewed-on: https://chromium-review.googlesource.com/905668
Reviewed-by: Benoit L <lizeb@chromium.org>
Reviewed-by: Richard Coles <torne@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535338}
[modify] https://crrev.com/0769eb7bd68ab99895c5428055dee1038709cf35/android_webview/BUILD.gn

Project Member

Comment 30 by bugdroid1@chromium.org, Feb 13 2018

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

commit c870c6df43f54ec6758fb40521460788b744b7a2
Author: Matthew Cary <mattcary@chromium.org>
Date: Tue Feb 13 16:37:29 2018

cygprofile: Refactor cyglog_to_orderfile.py.

No functional changes. This will make it possible to generate an orderfile
with offsets that are not produced from a profile run made by
orderfile_generator. Also creates test_utils.py as I noticed there was
a lot of reuse.

Bug: 758566
Change-Id: I22b13ecfe10a630ab4c2dcb1c67caf30e86342c5
Reviewed-on: https://chromium-review.googlesource.com/897563
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536378}
[modify] https://crrev.com/c870c6df43f54ec6758fb40521460788b744b7a2/tools/cygprofile/check_orderfile.py
[modify] https://crrev.com/c870c6df43f54ec6758fb40521460788b744b7a2/tools/cygprofile/cyglog_to_orderfile.py
[modify] https://crrev.com/c870c6df43f54ec6758fb40521460788b744b7a2/tools/cygprofile/cyglog_to_orderfile_unittest.py
[modify] https://crrev.com/c870c6df43f54ec6758fb40521460788b744b7a2/tools/cygprofile/patch_orderfile.py
[modify] https://crrev.com/c870c6df43f54ec6758fb40521460788b744b7a2/tools/cygprofile/phased_orderfile_unittest.py
[modify] https://crrev.com/c870c6df43f54ec6758fb40521460788b744b7a2/tools/cygprofile/process_profiles.py
[modify] https://crrev.com/c870c6df43f54ec6758fb40521460788b744b7a2/tools/cygprofile/process_profiles_unittest.py
[add] https://crrev.com/c870c6df43f54ec6758fb40521460788b744b7a2/tools/cygprofile/test_utils.py

Project Member

Comment 31 by bugdroid1@chromium.org, Feb 23 2018

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

commit ed73a1d57de9a443ede4b82b3d9163578362c267
Author: Matthew Cary <mattcary@chromium.org>
Date: Fri Feb 23 12:41:59 2018

cygprofile: Orderfile-based madvise() and prefetch.

Add support for madvising and prefetching different parts of the
native library according to the orderfile. The orderfile will support
organising the library text section into three parts: code that is
used in startup only, commonly used code that is ordered, and all
other code that is not ordered. This change adds another
dummy_function_* to achieve that. The currently-experimental
MadviseRandomText() function is replace with MadviseForOrderfile which
performs more precise madvising of unordered code only as RANDOM.

When madvising for the orderfile is done, library prefetching is
disabled. This will be changed in the future to prefetch only startup
or only ordered code depending on what is more effective in
experiments.

Bug: 758566
Change-Id: I85af8e33a79d9091e282f2640c47d6c83aca7fc2
Reviewed-on: https://chromium-review.googlesource.com/923965
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Camille Lamy <clamy@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538766}
[modify] https://crrev.com/ed73a1d57de9a443ede4b82b3d9163578362c267/base/android/library_loader/library_loader_hooks.cc
[modify] https://crrev.com/ed73a1d57de9a443ede4b82b3d9163578362c267/base/android/library_loader/library_prefetcher.cc
[modify] https://crrev.com/ed73a1d57de9a443ede4b82b3d9163578362c267/base/android/library_loader/library_prefetcher.h
[modify] https://crrev.com/ed73a1d57de9a443ede4b82b3d9163578362c267/base/base_switches.cc
[modify] https://crrev.com/ed73a1d57de9a443ede4b82b3d9163578362c267/base/base_switches.h
[modify] https://crrev.com/ed73a1d57de9a443ede4b82b3d9163578362c267/content/browser/gpu/gpu_process_host.cc
[modify] https://crrev.com/ed73a1d57de9a443ede4b82b3d9163578362c267/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/ed73a1d57de9a443ede4b82b3d9163578362c267/content/browser/utility_process_host_impl.cc

Project Member

Comment 32 by bugdroid1@chromium.org, Mar 21 2018

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

commit d12988d97a882f1001a8d5173ecefcf8b821f823
Author: Matthew Cary <mattcary@chromium.org>
Date: Wed Mar 21 14:45:20 2018

cygprofile: Manifest changes for isolated processes necessary for O.

Starting from Android O it is no longer possible to run any of the
processes isolated. However, it is not necessary if SELinux is in
permissive mode, which the orderfile generator sets (see
tools/cygprofile/profile_android_startup.py in _SetUpDevice).

This CL therefore removes the orderfile-specific changes to the android
manifest for all builds.

Bug: 758566
Change-Id: If3a8e0a3f0dfe81b034b4e0b080db53f661ef265
Reviewed-on: https://chromium-review.googlesource.com/970660
Reviewed-by: Bernhard Bauer <bauerb@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544692}
[modify] https://crrev.com/d12988d97a882f1001a8d5173ecefcf8b821f823/chrome/android/chrome_public_apk_tmpl.gni
[modify] https://crrev.com/d12988d97a882f1001a8d5173ecefcf8b821f823/chrome/android/java/AndroidManifest.xml

Project Member

Comment 33 by bugdroid1@chromium.org, Mar 21 2018

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

commit 6a99e2011c75625ace7fa64b1e517ea59ab50f37
Author: Matthew Cary <mattcary@chromium.org>
Date: Wed Mar 21 17:32:05 2018

cygprofile: Control android native library prefetch.

This adds two switches, --force-native-prefetch and
--native-prefetch-ordered-only. The former forces prefetch, even if
orderfile memory optimization is active. The latter prefetches only
ordered code as defined in
base/android/library_loader/anchor_functions.h.

These two switches operate independently.

Bug: 758566
Change-Id: Ie237eb9b7dc5905906e721c4ab9496fb0f79af0d
Reviewed-on: https://chromium-review.googlesource.com/970658
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544758}
[modify] https://crrev.com/6a99e2011c75625ace7fa64b1e517ea59ab50f37/base/android/library_loader/library_loader_hooks.cc
[modify] https://crrev.com/6a99e2011c75625ace7fa64b1e517ea59ab50f37/base/android/library_loader/library_prefetcher.cc
[modify] https://crrev.com/6a99e2011c75625ace7fa64b1e517ea59ab50f37/base/android/library_loader/library_prefetcher.h
[modify] https://crrev.com/6a99e2011c75625ace7fa64b1e517ea59ab50f37/base/base_switches.cc
[modify] https://crrev.com/6a99e2011c75625ace7fa64b1e517ea59ab50f37/base/base_switches.h

Project Member

Comment 34 by bugdroid1@chromium.org, Apr 4 2018

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

commit db9d0fdebbdfee3b8ff6a2670afe143be3b0f83e
Author: Benoit Lize <lizeb@chromium.org>
Date: Wed Apr 04 08:26:17 2018

android: Cleanup order profiling instrumentation.

tools/cygprofile (and its dependencies, among them //base) are built
without instrumentation, as the previous version of it was calling
//base functions, and to avoid infinite recursion. This is no longer
necessary.
Removing this has two benefits:
- More code is instrumented (as some parts of //base were off-limits)
- Simpler build files.

Also:
- Explain why //tools/cygprofile is a dependency of
  //tools/android/md5sum
- Instrument libwebp, and remove the opt-out of instrumentation

TBR=digit

Bug: 758566
Change-Id: I62cad01d216adbab759c62c42d2baa08f7a8a0b1
Reviewed-on: https://chromium-review.googlesource.com/985973
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Reviewed-by: James Zern <jzern@google.com>
Cr-Commit-Position: refs/heads/master@{#548005}
[modify] https://crrev.com/db9d0fdebbdfee3b8ff6a2670afe143be3b0f83e/build/config/android/BUILD.gn
[modify] https://crrev.com/db9d0fdebbdfee3b8ff6a2670afe143be3b0f83e/third_party/libwebp/BUILD.gn
[modify] https://crrev.com/db9d0fdebbdfee3b8ff6a2670afe143be3b0f83e/tools/android/md5sum/BUILD.gn
[modify] https://crrev.com/db9d0fdebbdfee3b8ff6a2670afe143be3b0f83e/tools/cygprofile/BUILD.gn
[modify] https://crrev.com/db9d0fdebbdfee3b8ff6a2670afe143be3b0f83e/tools/cygprofile/lightweight_cygprofile.cc

Project Member

Comment 35 by bugdroid1@chromium.org, Apr 9 2018

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

commit 5bbd94e7dd3671df1a1a4299727352c92b6d00b8
Author: Benoit Lize <lizeb@chromium.org>
Date: Mon Apr 09 08:33:47 2018

tools/android: Get Chrome's memory footprint from code pages on a device.

Also adds presubmit checks and unit tests to this directory.

Sample output:
$ python tools/android/native_lib_memory/code_pages_pss.py --app-package com.google.android.googlequicksearchbox --chrome-package com.android.chrome
[...]

        com.google.android.googlequicksearchbox
        com.google.android.googlequicksearchbox:interactor
        com.google.android.googlequicksearchbox:search
Total PSS from code pages = 2171kB

INFO: root:Processes:
Bug: 758566
Change-Id: I55cb0f3a5ca3fbadd9d2b095713258cd8b66caa5
Reviewed-on: https://chromium-review.googlesource.com/999714
Reviewed-by: Egor Pasko <pasko@chromium.org>
Commit-Queue: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549127}
[add] https://crrev.com/5bbd94e7dd3671df1a1a4299727352c92b6d00b8/tools/android/native_lib_memory/PRESUBMIT.py
[add] https://crrev.com/5bbd94e7dd3671df1a1a4299727352c92b6d00b8/tools/android/native_lib_memory/code_pages_pss.py
[add] https://crrev.com/5bbd94e7dd3671df1a1a4299727352c92b6d00b8/tools/android/native_lib_memory/code_pages_pss_unittest.py
[modify] https://crrev.com/5bbd94e7dd3671df1a1a4299727352c92b6d00b8/tools/android/native_lib_memory/process_residency.py
[add] https://crrev.com/5bbd94e7dd3671df1a1a4299727352c92b6d00b8/tools/android/native_lib_memory/run_tests

Project Member

Comment 36 by bugdroid1@chromium.org, May 2 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/catapult/+/86d3e79d8882670b4111b71eadf41072f98be34b

commit 86d3e79d8882670b4111b71eadf41072f98be34b
Author: Matthew Cary <mattcary@chromium.org>
Date: Wed May 02 08:52:23 2018

[Tracing] Android native library resident size statistics.

Adds resident statistics for the android native library, as defined by
VM regions with read and execute permission and whose mapped file
includes the name "base.apk". This will not add any new statistics to
other platforms where such VM regions don't exist.

Bug: chromium:758566
Change-Id: If902cfacee5a4f2c9420ded7c331cec831cb21d0
Reviewed-on: https://chromium-review.googlesource.com/986372
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Ethan Kuefner <eakuefner@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>

[modify] https://crrev.com/86d3e79d8882670b4111b71eadf41072f98be34b/tracing/tracing/model/vm_region_test.html
[modify] https://crrev.com/86d3e79d8882670b4111b71eadf41072f98be34b/tracing/tracing/metrics/system_health/memory_metric_test.html
[modify] https://crrev.com/86d3e79d8882670b4111b71eadf41072f98be34b/tracing/tracing/metrics/system_health/memory_metric.html
[modify] https://crrev.com/86d3e79d8882670b4111b71eadf41072f98be34b/tracing/tracing/model/vm_region.html
[modify] https://crrev.com/86d3e79d8882670b4111b71eadf41072f98be34b/tracing/tracing/extras/importer/trace_event_importer.html

Project Member

Comment 37 by bugdroid1@chromium.org, May 2 2018

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

commit ecf9112d654042989ad6e540f65a309fbda6803d
Author: catapult-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com <catapult-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Wed May 02 12:02:34 2018

Roll src/third_party/catapult/ 5b642efe8..86d3e79d8 (1 commit)

https://chromium.googlesource.com/catapult.git/+log/5b642efe8459..86d3e79d8882

$ git log 5b642efe8..86d3e79d8 --date=short --no-merges --format='%ad %ae %s'
2018-05-02 mattcary [Tracing] Android native library resident size statistics.

Created with:
  roll-dep src/third_party/catapult
BUG=chromium:758566


The AutoRoll server is located here: https://catapult-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.


TBR=sullivan@chromium.org

Change-Id: I9887f72a3ecf93a97d56d4cc4b6ffb4b6f4b59b1
Reviewed-on: https://chromium-review.googlesource.com/1039264
Commit-Queue: catapult-chromium-autoroll <catapult-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Reviewed-by: catapult-chromium-autoroll <catapult-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#555356}
[modify] https://crrev.com/ecf9112d654042989ad6e540f65a309fbda6803d/DEPS

Project Member

Comment 38 by bugdroid1@chromium.org, May 16 2018

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

commit 1dfb1faf43d0b441a0a62ed03a7bdac171ea08ba
Author: Benoit Lize <lizeb@chromium.org>
Date: Wed May 16 15:02:24 2018

cygprofile: Add __cxx_global_var_init to the orderfile.

This is currently the third largest symbol in Chrome on Android, yet is
out of the orderfile (as it's not instrumented).

Bug: 758566
Change-Id: Id4b3cfcc74bbf5c2202ae4ed1eff2e385ef4c7b7
Reviewed-on: https://chromium-review.googlesource.com/1061521
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Commit-Queue: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559094}
[modify] https://crrev.com/1dfb1faf43d0b441a0a62ed03a7bdac171ea08ba/tools/cygprofile/patch_orderfile.py

Project Member

Comment 39 by bugdroid1@chromium.org, Jun 14 2018

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

commit fbbfa7eae66f2cd20b679147ebedb3a7af1e5563
Author: Matthew Cary <mattcary@chromium.org>
Date: Thu Jun 14 15:28:27 2018

Orderfile: Simplify prefetch logic.

The current logic in library_loader_hooks.cc for when to fork and
prefetch the native library has gotten complicated. This CL simplifies
it to current best practice: The prefetching is always done, restricted
to the ordered code if --orderfile-memory-optimization is set.

Bug: 758566
Change-Id: I86ecfff37b18eb7bda1edadfa5399db97b8be53e
Reviewed-on: https://chromium-review.googlesource.com/1095256
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567274}
[modify] https://crrev.com/fbbfa7eae66f2cd20b679147ebedb3a7af1e5563/base/android/library_loader/library_loader_hooks.cc
[modify] https://crrev.com/fbbfa7eae66f2cd20b679147ebedb3a7af1e5563/base/base_switches.cc
[modify] https://crrev.com/fbbfa7eae66f2cd20b679147ebedb3a7af1e5563/base/base_switches.h

Project Member

Comment 40 by bugdroid1@chromium.org, Jun 14 2018

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

commit e8400646d71d2397a3ce6b4ca6ca918b9ee4f6d7
Author: Matthew Cary <mattcary@chromium.org>
Date: Thu Jun 14 15:43:02 2018

Orderfile: add manual symbol offsets to the orderfile generator.

Adds --manual-symbol-offsets, --manual-libname and --manual-objdir to
the orderfile generator, allowing custom profiling. For example, with
this one can easily collect profile information manual, process it with
phased_orderfile.py, and then use the resulting symbol lists to produce
a properly patched orderfile that is suitable for performance comparison
against the production orderfile.

Bug: 758566
Change-Id: I0e41319dfcd537cd7f076e0236dc96b853dd7a4f
Reviewed-on: https://chromium-review.googlesource.com/1095274
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567284}
[modify] https://crrev.com/e8400646d71d2397a3ce6b4ca6ca918b9ee4f6d7/tools/cygprofile/orderfile_generator_backend.py

Cc: mattcary@chromium.org
Project Member

Comment 43 by bugdroid1@chromium.org, Jul 27

The following revision refers to this bug:
  https://chromium.googlesource.com/catapult/+/6a67dd77dfc315c038acd9d6349bfe57f2b6fa97

commit 6a67dd77dfc315c038acd9d6349bfe57f2b6fa97
Author: Matthew Cary <mattcary@chromium.org>
Date: Fri Jul 27 13:25:36 2018

Tracing: Fix native library stats for pre-N devices.

The native library is loaded by chrome on pre-N devices, changing how it
is reported in /proc/smaps. This change updates the native library stats
to work for those cases.

Bug: chromium:758566
Change-Id: Ic842491062b7cb3e27ebe8626c33f00d6277e6b0
Reviewed-on: https://chromium-review.googlesource.com/1126116
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Reviewed-by: Ethan Kuefner <eakuefner@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>

[modify] https://crrev.com/6a67dd77dfc315c038acd9d6349bfe57f2b6fa97/tracing/tracing/model/vm_region.html

Project Member

Comment 44 by bugdroid1@chromium.org, Jul 27

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

commit c36aa32695fe893d721015ee2566b79ba65d3d1d
Author: catapult-chromium-autoroll <catapult-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Fri Jul 27 15:39:44 2018

Roll src/third_party/catapult 787a378926fb..6a67dd77dfc3 (1 commits)

https://chromium.googlesource.com/catapult.git/+log/787a378926fb..6a67dd77dfc3


git log 787a378926fb..6a67dd77dfc3 --date=short --no-merges --format='%ad %ae %s'
2018-07-27 mattcary@chromium.org Tracing: Fix native library stats for pre-N devices.


Created with:
  gclient setdep -r src/third_party/catapult@6a67dd77dfc3

The AutoRoll server is located here: https://catapult-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG=chromium:758566
TBR=sullivan@chromium.org

Change-Id: I21b7d9a9d8d414220c338583ca44b04263a5c27f
Reviewed-on: https://chromium-review.googlesource.com/1152618
Reviewed-by: catapult-chromium-autoroll <catapult-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: catapult-chromium-autoroll <catapult-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#578653}
[modify] https://crrev.com/c36aa32695fe893d721015ee2566b79ba65d3d1d/DEPS

Components: Speed>Metrics>SystemHealthRegressions
Components: -Speed>Metrics>SystemHealthRegressions
Project Member

Comment 47 by bugdroid1@chromium.org, Aug 10

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

commit f2da3d75d65ae259a03030305daeb9ecadfcdfc5
Author: Matthew Cary <mattcary@chromium.org>
Date: Fri Aug 10 16:25:36 2018

Orderfile: output phase sizes during processing.

When generating orderfiles manually, output the sizes symbols in each
phase. Also removes obsolete stability calculation.

Bug: 758566
Change-Id: Ie836061e93683884d631c2f7d3daab7fb6602c9f
Reviewed-on: https://chromium-review.googlesource.com/1156305
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582195}
[modify] https://crrev.com/f2da3d75d65ae259a03030305daeb9ecadfcdfc5/tools/cygprofile/phased_orderfile.py

Project Member

Comment 48 by bugdroid1@chromium.org, Aug 10

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

commit 78aae16be65e409075816860e948d1536a548234
Author: Matthew Cary <mattcary@chromium.org>
Date: Fri Aug 10 17:16:30 2018

Orderfile: add phased system health orderfile to the generator.

This is enabled with --system-health-orderfile. Other than taking much
longer to run the profiling, and producing a much more effective
orderfile, the orderfile generator is run in the same way and produces
the same output.

Bug: 758566
Change-Id: I66c3aa28c9499179f86644ee8e64c9a6c63bad54
Reviewed-on: https://chromium-review.googlesource.com/1159066
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582219}
[modify] https://crrev.com/78aae16be65e409075816860e948d1536a548234/tools/cygprofile/orderfile_generator_backend.py
[modify] https://crrev.com/78aae16be65e409075816860e948d1536a548234/tools/cygprofile/phased_orderfile.py
[modify] https://crrev.com/78aae16be65e409075816860e948d1536a548234/tools/cygprofile/phased_orderfile_unittest.py
[modify] https://crrev.com/78aae16be65e409075816860e948d1536a548234/tools/cygprofile/profile_android_startup.py

Project Member

Comment 49 by bugdroid1@chromium.org, Aug 21

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

commit 4fc85b2785c5fef479a397fa5de4eb8152f650bd
Author: Matthew Cary <mattcary@chromium.org>
Date: Tue Aug 21 18:25:46 2018

Android: whitelist MADV_RANDOM and MADV_NORMAL.

Extend seccomp_bpf to allow MADV_RANDOM and MADV_NORMAL for the madvise()
syscall. These are used to control code page memory footprint, particularly on
android.

Bug: 758566
Cq-Include-Trybots: master.tryserver.chromium.android:android_compile_x64_dbg;master.tryserver.chromium.android:android_compile_x86_dbg
Change-Id: I9d87af4453d19a1391053ffc56f1eab85a2ad231
Reviewed-on: https://chromium-review.googlesource.com/1150176
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Reviewed-by: Chris Palmer <palmer@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584845}
[modify] https://crrev.com/4fc85b2785c5fef479a397fa5de4eb8152f650bd/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc

Project Member

Comment 50 by bugdroid1@chromium.org, Sep 14

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

commit 799a3b2f8c0ebd82b7940b446d1354057606b37c
Author: Matthew Cary <mattcary@chromium.org>
Date: Fri Sep 14 09:56:14 2018

Orderfile: add logging on repeated symbols.

There are frequently a small number of symbols that are repeated with
different offsets. These are benign but cause some annoyances, for
example they can make it appear that a binary is not ordered correctly,
necessitating the threshold used in check_orderfile.py (q.v.).

This CL adds a small amount of logging for the repeated symbols that
will make it easier to see the cause if a larger number of symbols get
repeated.

Bug: 758566
Change-Id: I04038bebec38b1b38e5667a578e7b4e06ac6060d
Reviewed-on: https://chromium-review.googlesource.com/1201853
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591314}
[modify] https://crrev.com/799a3b2f8c0ebd82b7940b446d1354057606b37c/tools/cygprofile/symbol_extractor.py

Project Member

Comment 51 by bugdroid1@chromium.org, Sep 14

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

commit d6bfcb75d4974587fbb737d136120c540e5ca24a
Author: Matthew Cary <mattcary@chromium.org>
Date: Fri Sep 14 11:27:46 2018

Orderfile: add option to build for monochrome.

This is helpful for local testing, where our older devices are getting flaky,
and will eventually be necessary when the bot upgrades.

Bug: 758566
Change-Id: If1d36f17c3ffd8605d14ab1aa30d4df0acafc3ad
Reviewed-on: https://chromium-review.googlesource.com/1219688
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591322}
[modify] https://crrev.com/d6bfcb75d4974587fbb737d136120c540e5ca24a/tools/cygprofile/orderfile_generator_backend.py

Project Member

Comment 52 by bugdroid1@chromium.org, Sep 17

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

commit 52a492364d30a13687cb67742d8393d0ea86a431
Author: Matthew Cary <mattcary@chromium.org>
Date: Mon Sep 17 10:56:05 2018

Orderfile: reduce system_health training jobs to 25.

Local testing suggests 25 jobs will increase orderfile generation time
from 1h to 2.5h. The orderfile currently runs every 3 hours, so adding
more training jobs would the orderfile to fall further behind. Until
we're confident in the performance of the new orderfile we'll be
conservative in making changes to the pipeline.

Bug: 758566
Change-Id: Ic0c19d4659f5f7183b0cabcaff8e048a71141257
Reviewed-on: https://chromium-review.googlesource.com/1225883
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591636}
[modify] https://crrev.com/52a492364d30a13687cb67742d8393d0ea86a431/tools/perf/contrib/orderfile/orderfile.py

Project Member

Comment 53 by bugdroid1@chromium.org, Sep 17

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

commit 7d96627bed2c63b20654af506098e7ef8b722756
Author: Matthew Cary <mattcary@chromium.org>
Date: Mon Sep 17 14:51:45 2018

Orderfile: turn on system health order profiling.

This sets default orderfile generation to use system health profiling.

Bug: 758566
Change-Id: Ie87f8b2623373861c7bdc44d5dfd866ce3597cd9
Reviewed-on: https://chromium-review.googlesource.com/1228074
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591674}
[modify] https://crrev.com/7d96627bed2c63b20654af506098e7ef8b722756/tools/cygprofile/orderfile_generator_backend.py

Project Member

Comment 54 by bugdroid1@chromium.org, Sep 18

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

commit 266899324645fdad78e0855b046d47f0eebd8626
Author: John Budorick <jbudorick@chromium.org>
Date: Tue Sep 18 19:05:42 2018

Revert "Orderfile: turn on system health order profiling."

This reverts commit 7d96627bed2c63b20654af506098e7ef8b722756.

Reason for revert: Suspect this broke orderfile generation due to conflicting adb binaries.

Original change's description:
> Orderfile: turn on system health order profiling.
> 
> This sets default orderfile generation to use system health profiling.
> 
> Bug: 758566
> Change-Id: Ie87f8b2623373861c7bdc44d5dfd866ce3597cd9
> Reviewed-on: https://chromium-review.googlesource.com/1228074
> Commit-Queue: Matthew Cary <mattcary@chromium.org>
> Reviewed-by: Egor Pasko <pasko@chromium.org>
> Reviewed-by: Benoit L <lizeb@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#591674}

TBR=pasko@chromium.org,lizeb@chromium.org,mattcary@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug: 758566
Change-Id: Ia3092b00488f332a5348f9aaae13fdb4691f27de
Reviewed-on: https://chromium-review.googlesource.com/1231919
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: John Budorick <jbudorick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592132}
[modify] https://crrev.com/266899324645fdad78e0855b046d47f0eebd8626/tools/cygprofile/orderfile_generator_backend.py

Project Member

Comment 55 by bugdroid1@chromium.org, Sep 19

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

commit e1b0006b65ea5c8015d67e7ea1be6cfe5732057f
Author: Matthew Cary <mattcary@chromium.org>
Date: Wed Sep 19 14:27:44 2018

Orderfile: fix bug in monochrome build.

Bug: 758566
Change-Id: I9ec28cc5bb1be7baac6ac232bd9db1a10870b3cc
Reviewed-on: https://chromium-review.googlesource.com/1233595
Reviewed-by: Egor Pasko <pasko@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592389}
[modify] https://crrev.com/e1b0006b65ea5c8015d67e7ea1be6cfe5732057f/tools/cygprofile/orderfile_generator_backend.py

Project Member

Comment 56 by bugdroid1@chromium.org, Sep 19

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

commit c262f5df4a20ce8f196cdf2f17b3f33b5f17a01d
Author: Matthew Cary <mattcary@chromium.org>
Date: Wed Sep 19 14:36:28 2018

Orderfile: Revert revert "Orderfile: turn on system health order profiling."

This reverts 7d96627bed2c63b20654af506098e7ef8b722756.

Reason: adb problems possibly fixed.

Bug: 885071, 758566
Change-Id: Id1abd6f5ab2022ecb50232b8f02e5cab8940ec84
Reviewed-on: https://chromium-review.googlesource.com/1233695
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592391}
[modify] https://crrev.com/c262f5df4a20ce8f196cdf2f17b3f33b5f17a01d/tools/cygprofile/orderfile_generator_backend.py

Project Member

Comment 57 by bugdroid1@chromium.org, Sep 20

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

commit 3c48bf62457c93307400966880433a4a1a3f929d
Author: Matthew Cary <mattcary@chromium.org>
Date: Thu Sep 20 11:07:51 2018

Orderfile: blacklist gmail system health tests.

long_running:tools:gmail-foreground and
long_running:tools:gmail-background fail consistently during orderfile
profiling. Blacklisting them will let us run another benchmark instead.

Bug: 758566
Change-Id: I504e522c5f7d809838bcefc8168eb3a284d4ed1a
Reviewed-on: https://chromium-review.googlesource.com/1235713
Reviewed-by: Egor Pasko <pasko@chromium.org>
Commit-Queue: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#592752}
[modify] https://crrev.com/3c48bf62457c93307400966880433a4a1a3f929d/tools/perf/contrib/orderfile/orderfile.py

Project Member

Comment 58 by bugdroid1@chromium.org, Sep 26

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

commit 16d1abff6faaa88b98fca3db679f699995d70b69
Author: Matthew Cary <mattcary@chromium.org>
Date: Wed Sep 26 08:01:30 2018

Orderfile: increase new profile pull timeout.

Pulling the new profile files seems to be consistently timing out on
the buildbot.

Bug: 758566
TBR: pasko@chromium.org
Change-Id: I544e2a9e76609d56c791fe7d1794efe6eb5087a4
Reviewed-on: https://chromium-review.googlesource.com/1244840
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#594246}
[modify] https://crrev.com/16d1abff6faaa88b98fca3db679f699995d70b69/tools/cygprofile/profile_android_startup.py

Project Member

Comment 59 by bugdroid1@chromium.org, Oct 11

The following revision refers to this bug:
  https://chromium.googlesource.com/catapult/+/304adc9832be7bbb3dde03c899347be3f05af952

commit 304adc9832be7bbb3dde03c899347be3f05af952
Author: Egor Pasko <pasko@chromium.org>
Date: Thu Oct 11 13:26:31 2018

Enable orderfile memory optimization in benchmarks

**PERF SHERIFFS**: We do not expect the behavior to affect startup
                   performance. It should affect memory usage from
                   native code.

The way to force the new behavior (that we intend to launch) is to
provide the flag to Chrome: --orderfile-memory-optimization.

This behavior will be Finch-ed (as described in [1]), but we cannot use
the 'fieldtrial_testing_config.json' for testing because the feature is
set up as a synthetic field trial.

This change should land and rolled into Chromium _before_ [1] lands to
avoid coin flipping when benchmarking.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/1270936

Bug: chromium:758566
Change-Id: I5963b087b0226e15befbd68335325147cd3efeba
Reviewed-on: https://chromium-review.googlesource.com/c/1276246
Reviewed-by: Juan Antonio Navarro Pérez <perezju@chromium.org>
Commit-Queue: Egor Pasko <pasko@chromium.org>

[modify] https://crrev.com/304adc9832be7bbb3dde03c899347be3f05af952/telemetry/telemetry/internal/backends/chrome/chrome_startup_args.py

Project Member

Comment 60 by bugdroid1@chromium.org, Oct 11

The following revision refers to this bug:
  https://chromium.googlesource.com/catapult/+/41b91eed1635b282ae03979fa61a52567c129642

commit 41b91eed1635b282ae03979fa61a52567c129642
Author: John Budorick <jbudorick@chromium.org>
Date: Thu Oct 11 23:09:24 2018

Revert "Enable orderfile memory optimization in benchmarks"

This reverts commit 304adc9832be7bbb3dde03c899347be3f05af952.

Reason for revert:  crbug.com/894622 

Original change's description:
> Enable orderfile memory optimization in benchmarks
> 
> **PERF SHERIFFS**: We do not expect the behavior to affect startup
>                    performance. It should affect memory usage from
>                    native code.
> 
> The way to force the new behavior (that we intend to launch) is to
> provide the flag to Chrome: --orderfile-memory-optimization.
> 
> This behavior will be Finch-ed (as described in [1]), but we cannot use
> the 'fieldtrial_testing_config.json' for testing because the feature is
> set up as a synthetic field trial.
> 
> This change should land and rolled into Chromium _before_ [1] lands to
> avoid coin flipping when benchmarking.
> 
> [1] https://chromium-review.googlesource.com/c/chromium/src/+/1270936
> 
> Bug: chromium:758566
> Change-Id: I5963b087b0226e15befbd68335325147cd3efeba
> Reviewed-on: https://chromium-review.googlesource.com/c/1276246
> Reviewed-by: Juan Antonio Navarro Pérez <perezju@chromium.org>
> Commit-Queue: Egor Pasko <pasko@chromium.org>

TBR=pasko@chromium.org,perezju@chromium.org

Change-Id: Ia9e1af142b031b6ee430d7ba87000f70a9aae131
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:758566
Reviewed-on: https://chromium-review.googlesource.com/c/1277779
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: John Budorick <jbudorick@chromium.org>

[modify] https://crrev.com/41b91eed1635b282ae03979fa61a52567c129642/telemetry/telemetry/internal/backends/chrome/chrome_startup_args.py

Blockedon: 894827
Blockedon: 893981
Project Member

Comment 63 by bugdroid1@chromium.org, Oct 12

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

commit bb11cbc66e56a475bdf0f5bf3d962cf80c3afe27
Author: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Date: Fri Oct 12 22:54:58 2018

Roll src/third_party/catapult c8b97e37ec9c..99b88b0a2d58 (21 commits)

https://chromium.googlesource.com/catapult.git/+log/c8b97e37ec9c..99b88b0a2d58


git log c8b97e37ec9c..99b88b0a2d58 --date=short --no-merges --format='%ad %ae %s'
2018-10-12 simonhatch@chromium.org Pinpoint - Merge bugs with same root cause.
2018-10-12 benjhayden@chromium.org Change deprecation warnings in /api/alerts to errors.
2018-10-12 benjhayden@chromium.org Cache report names, test suites, and descriptors in v2spa service worker
2018-10-12 chiniforooshan@chromium.org Telemetry: process all rendering pipeline events
2018-10-12 benjhayden@chromium.org Cache session ids in v2spa service worker.
2018-10-12 benjhayden@chromium.org Fix links in rollback.md
2018-10-12 benjhayden@chromium.org Add KeyValueCacheRequest for v2spa service worker.
2018-10-12 benjhayden@chromium.org Add ts_mon metrics to common/timing.py
2018-10-12 benjhayden@chromium.org Add CacheRequestBase for v2spa service worker.
2018-10-12 nednguyen@google.com [Telemetry] Add --test-filter flag that support exact matching of multiple tests
2018-10-12 sadrul@chromium.org rendering: Generate metrics at the 95%ile.
2018-10-12 pasko@chromium.org androidStartupMetric: re-introduce First Contentful Paint
2018-10-12 chrishtr@chromium.org Clean up categories to match current tracing in Blink.
2018-10-11 jbudorick@chromium.org Revert "Enable orderfile memory optimization in benchmarks"
2018-10-11 benjhayden@chromium.org Add task queue for v2spa service worker.
2018-10-11 benjhayden@chromium.org Remove unnecessary file dashboard/test/index.html
2018-10-11 perezju@chromium.org [soundwave] Allow points with missing r_chromium
2018-10-11 chiniforooshan@chromium.org Telemetry: migrate frame_times & percentage_smooth
2018-10-11 ulan@chromium.org [tracing] Restore the minimum mutator utilization metric.
2018-10-11 seanmccullough@chromium.org [chromeperf] add prefix to wct script so tests get found.
2018-10-11 pasko@chromium.org Enable orderfile memory optimization in benchmarks


Created with:
  gclient setdep -r src/third_party/catapult@99b88b0a2d58

The AutoRoll server is located here: https://autoroll.skia.org/r/catapult-autoroll

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

CQ_INCLUDE_TRYBOTS=luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

BUG=chromium:840872, chromium:893199 ,chromium:867060,chromium:894261,chromium:894287, chromium:886621 ,chromium:893514,chromium:758566, chromium:879526 , chromium:890757 , chromium:892385 , chromium:877660 ,chromium:758566
TBR=sullivan@chromium.org

Change-Id: I469ed20d66790fa12e290ad65e2ea51c16cfdba7
Reviewed-on: https://chromium-review.googlesource.com/c/1279078
Reviewed-by: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Commit-Queue: chromium-autoroll <chromium-autoroll@skia-public.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#599392}
[modify] https://crrev.com/bb11cbc66e56a475bdf0f5bf3d962cf80c3afe27/DEPS

Project Member

Comment 64 by bugdroid1@chromium.org, Oct 15

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

commit 03642a2aea39a94f72995da5a3a922412cdf1ca2
Author: Matthew Cary <mattcary@chromium.org>
Date: Mon Oct 15 09:08:08 2018

Orderfile: disable system health orderfile generation.

The bugs below suggest that under thinLTO, the system health orderfile
regresses memory, as well as performance (the latter probably even
without thinLTO). This CL reverts back to the simpler orderfile.

Bug: 758566,893981, 894827 
Change-Id: I93c898dd7c8d55311ac3aed08815c610573c49c2
Reviewed-on: https://chromium-review.googlesource.com/c/1277804
Reviewed-by: Benoit L <lizeb@chromium.org>
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599592}
[modify] https://crrev.com/03642a2aea39a94f72995da5a3a922412cdf1ca2/tools/cygprofile/orderfile_generator_backend.py

Blockedon: 913436
Blockedon: 917704
Project Member

Comment 67 by bugdroid1@chromium.org, Jan 14

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

commit 8c656bb971d5f30a98c48767617b0c2620036d79
Author: Benoît Lizé <lizeb@chromium.org>
Date: Mon Jan 14 17:08:08 2019

cygprofile: Add support for ThinLTO in extract_symbols.py.

Now that ThinLTO is used, object files no longer contain executable code, only
LLVM bitcode. As a consequence, it is no longer possible to visualize the code
-> object file mapping.

extract_symbols.py can be used to overlay the native library code range with the
provenance of its code. It generates a HTML visualization of the native library
layout, and is used to investigate and assess code ordering.

To get it back, use llvm-nm instead of objdump to get the list of symbols. This
requires a change to clang scripts, as llvm-nm isn't built with clang yet.

Also fixes a few lint warnings.

Bug: 758566
Change-Id: I860e2a44132eb05b369c8c8a27a26776267611e2
Reviewed-on: https://chromium-review.googlesource.com/c/1409502
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622486}
[modify] https://crrev.com/8c656bb971d5f30a98c48767617b0c2620036d79/tools/android/native_lib_memory/extract_symbols.py
[modify] https://crrev.com/8c656bb971d5f30a98c48767617b0c2620036d79/tools/cygprofile/symbol_extractor.py
[modify] https://crrev.com/8c656bb971d5f30a98c48767617b0c2620036d79/tools/cygprofile/symbol_extractor_unittest.py

Project Member

Comment 68 by bugdroid1@chromium.org, Jan 15

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

commit 933961ccd19127931f81ee900daebff9530c96ac
Author: Benoît Lizé <lizeb@chromium.org>
Date: Tue Jan 15 10:29:43 2019

cygprofile: Show the bounds of ordered code in extract_symbols.py.

Adds an overalay in the HTML output to show the bounds of the ordered section.

Bug: 758566
Change-Id: I547b7c578c2f0fc436939d81236f7cff51d0a2cf
Reviewed-on: https://chromium-review.googlesource.com/c/1409449
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622797}
[modify] https://crrev.com/933961ccd19127931f81ee900daebff9530c96ac/tools/android/native_lib_memory/visualize.js

Project Member

Comment 69 by bugdroid1@chromium.org, Jan 15

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

commit 4b844706464c66793e9b2b4ab9eb0217859921a9
Author: Benoît Lizé <lizeb@chromium.org>
Date: Tue Jan 15 12:02:29 2019

cygprofile: Support ARM64 in symbol_extractor.py.

llvm-nm can output lines with 16 digits, not 8 (contrary to the
documentation). Adjust the regexp to account for that.

Bug: 758566
Change-Id: I09d99658018a49cec76bb2ba60d424f5d4580a9d
Reviewed-on: https://chromium-review.googlesource.com/c/1411343
Reviewed-by: Matthew Cary <mattcary@chromium.org>
Commit-Queue: Benoit L <lizeb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622820}
[modify] https://crrev.com/4b844706464c66793e9b2b4ab9eb0217859921a9/tools/cygprofile/symbol_extractor.py
[modify] https://crrev.com/4b844706464c66793e9b2b4ab9eb0217859921a9/tools/cygprofile/symbol_extractor_unittest.py

Project Member

Comment 70 by bugdroid1@chromium.org, Jan 18 (5 days ago)

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

commit 283e73ecd3fe026515a824fea203e08c1845e71d
Author: Matthew Cary <mattcary@chromium.org>
Date: Fri Jan 18 14:18:34 2019

Android startup: Orderfile memory optimization trial.

Expose orderfile memory optimizations such as madvise to a synthetic
trial. This transforms the existing --orderfile-memory-optimization
switch to one which takes an "on" or "off" value. If the switch is not
given, a 50% synthetic trial named AndroidOrderfileOptimization is
used instead. Membership in this trial is choosed randomly at startup
and then communicated to subprocesses via
--orderfile-memory-optimization.

This has been enabled by system health orderfile creation, see
crrev.com/c/1228074.

Bug: 758566
Change-Id: Icc6efc6c82b99d7f1dd21678c667c89bc902f840
Reviewed-on: https://chromium-review.googlesource.com/c/1270936
Commit-Queue: Matthew Cary <mattcary@chromium.org>
Reviewed-by: François Doray <fdoray@chromium.org>
Reviewed-by: Xi Han <hanxi@chromium.org>
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624104}
[modify] https://crrev.com/283e73ecd3fe026515a824fea203e08c1845e71d/base/BUILD.gn
[modify] https://crrev.com/283e73ecd3fe026515a824fea203e08c1845e71d/base/android/library_loader/library_loader_hooks.cc
[modify] https://crrev.com/283e73ecd3fe026515a824fea203e08c1845e71d/base/android/library_loader/library_loader_hooks.h
[add] https://crrev.com/283e73ecd3fe026515a824fea203e08c1845e71d/base/android/library_loader/library_loader_hooks_unittest.cc
[modify] https://crrev.com/283e73ecd3fe026515a824fea203e08c1845e71d/base/android/library_loader/library_prefetcher.cc
[modify] https://crrev.com/283e73ecd3fe026515a824fea203e08c1845e71d/base/base_switches.cc
[modify] https://crrev.com/283e73ecd3fe026515a824fea203e08c1845e71d/chrome/browser/chrome_browser_field_trials_mobile.cc
[modify] https://crrev.com/283e73ecd3fe026515a824fea203e08c1845e71d/chrome/browser/metrics/chrome_metrics_service_accessor.h

Sign in to add a comment