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

Issue 728199 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug

Blocked on:
issue 737325
issue 768373

Blocking:
issue 703184



Sign in to add a comment

Tracker bug for moving full memory-infra metric computation code to Chrome

Project Member Reported by primiano@chromium.org, May 31 2017

Issue description

Design doc will follow soon.

 
Cc: hjd@chromium.org
 Issue 728197  has been merged into this issue.

Comment 2 by hjd@chromium.org, Jun 1 2017

I have started doing the archaeology to work out which features of the current implementation we are currently using: https://docs.google.com/document/d/1eJf7xZSulkEIWn5sEcyzlATLvE2p-FnvKb8P_tuIH9g/edit#heading=h.44bdcznd97xn
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 16 2017

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

commit 0bef0d3d46ae87529dfdf35f979275f90d22f625
Author: Hector Dearman <hjd@google.com>
Date: Fri Jun 16 14:29:28 2017

memory-infra: Split mojom internal/external response types

Split the ProcessMemoryDump struct into ProcessMemoryDump and
ProcessMemoryDumpInternal. The former is used as part of memory-infra's
public "Request a global memory dump" API and the latter is used for
internal coordination. Spliting them allows us to remove two fields
which were only used in one or other case and also sets the stage for
larger rafactorings to the internal struct to support computing memory
metrics in Chrome.

Bug:  728199 
Change-Id: I6603ba4b424bc177082792759be1ace866951828
Reviewed-on: https://chromium-review.googlesource.com/533335
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Commit-Queue: Hector Dearman <hjd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#480038}
[modify] https://crrev.com/0bef0d3d46ae87529dfdf35f979275f90d22f625/base/trace_event/memory_dump_manager.cc
[modify] https://crrev.com/0bef0d3d46ae87529dfdf35f979275f90d22f625/base/trace_event/memory_dump_request_args.h
[modify] https://crrev.com/0bef0d3d46ae87529dfdf35f979275f90d22f625/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/0bef0d3d46ae87529dfdf35f979275f90d22f625/services/resource_coordinator/memory_instrumentation/coordinator_impl.h
[modify] https://crrev.com/0bef0d3d46ae87529dfdf35f979275f90d22f625/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
[modify] https://crrev.com/0bef0d3d46ae87529dfdf35f979275f90d22f625/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/0bef0d3d46ae87529dfdf35f979275f90d22f625/services/resource_coordinator/public/interfaces/memory_instrumentation/memory_instrumentation.mojom

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 22 2017

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

commit 4c4e1e1bccdb9a2ffa37d533d27b71a7350215a8
Author: Hector Dearman <hjd@google.com>
Date: Thu Jun 22 09:06:17 2017

memory-infra: Split OSDump struct into in/external

Split the "OS Dump" Mojo struct into an internal version and an external
public facing version. This lets us stop exposing implementations details
(like PlatformPrivateFootprint). While we're touching the struct also
refactor private_footprint to be a field on OSDump which seems a more
sensible place for it.

TBR=asvitkine

Bug:  728199 
Change-Id: I1c029c2b930231312654912375596f11ede0d937
Reviewed-on: https://chromium-review.googlesource.com/536734
Commit-Queue: Primiano Tucci <primiano@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Reviewed-by: siddhartha sivakumar <ssid@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481486}
[modify] https://crrev.com/4c4e1e1bccdb9a2ffa37d533d27b71a7350215a8/chrome/browser/metrics/process_memory_metrics_emitter.cc
[modify] https://crrev.com/4c4e1e1bccdb9a2ffa37d533d27b71a7350215a8/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/4c4e1e1bccdb9a2ffa37d533d27b71a7350215a8/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.typemap
[modify] https://crrev.com/4c4e1e1bccdb9a2ffa37d533d27b71a7350215a8/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation_struct_traits.cc
[modify] https://crrev.com/4c4e1e1bccdb9a2ffa37d533d27b71a7350215a8/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation_struct_traits.h
[modify] https://crrev.com/4c4e1e1bccdb9a2ffa37d533d27b71a7350215a8/services/resource_coordinator/public/interfaces/memory_instrumentation/memory_instrumentation.mojom

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 22 2017

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

commit 30108ca1482de80fedfe33076001fc2096956cd0
Author: Hector Dearman <hjd@google.com>
Date: Thu Jun 22 12:50:01 2017

memory-infra: Update coordinator_impl_unittest to use gmock

Move coordinator_impl_unittest to using gmock instead of hand rolled
mocks. This avoids PostTask indirection and will make it easier to
add tests that we are summarizing the structs correctly.

Bug:  728199 
Change-Id: I0f9cecf86f75a18bfcbd85b4f5bb66d3241f8c7e
Reviewed-on: https://chromium-review.googlesource.com/543136
Commit-Queue: Hector Dearman <hjd@chromium.org>
Reviewed-by: siddhartha sivakumar <ssid@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#481511}
[modify] https://crrev.com/30108ca1482de80fedfe33076001fc2096956cd0/services/resource_coordinator/BUILD.gn
[modify] https://crrev.com/30108ca1482de80fedfe33076001fc2096956cd0/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 26 2017

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

commit 4ee121999f15be82a0eb1fcf3f09cec215094822
Author: Hector Dearman <hjd@google.com>
Date: Mon Jun 26 13:13:30 2017

memory-infra: Pass ProcessType at registration

Pass ProcessType at registration time rather than at response time to
allow us to use process type to decide which clients to request OsDumps
from.

Bug:  728199 
Change-Id: I0f456ff4ed6f6c3c75318f05d2e5f53cafdafa45
Reviewed-on: https://chromium-review.googlesource.com/544305
Reviewed-by: Will Harris <wfh@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Commit-Queue: Hector Dearman <hjd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#482254}
[modify] https://crrev.com/4ee121999f15be82a0eb1fcf3f09cec215094822/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/4ee121999f15be82a0eb1fcf3f09cec215094822/services/resource_coordinator/memory_instrumentation/coordinator_impl.h
[modify] https://crrev.com/4ee121999f15be82a0eb1fcf3f09cec215094822/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
[modify] https://crrev.com/4ee121999f15be82a0eb1fcf3f09cec215094822/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/4ee121999f15be82a0eb1fcf3f09cec215094822/services/resource_coordinator/public/interfaces/memory_instrumentation/memory_instrumentation.mojom

Blockedon: 737325
Project Member

Comment 8 by bugdroid1@chromium.org, Jul 3 2017

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

commit fd9c8e58a1eefc41917956bc1746acd6344b8f3a
Author: Hector Dearman <hjd@google.com>
Date: Mon Jul 03 14:54:55 2017

memory-infra: Move ProcessMetricsMemoryDumpProvider to service

Move ProcessMetricsMemoryDumpProvider to the memory
instrumentation service. This reduces the number of places memory-infra
code lives and paves the way for us refactor the collection of OS dumps
to no longer be tied to MemoyDumpManager and MemoyDumpProviders.

Bug:  728199 
Change-Id: I70100c1fff86691bc422b214b779b3367c2c0a24
Reviewed-on: https://chromium-review.googlesource.com/545675
Commit-Queue: Hector Dearman <hjd@chromium.org>
Reviewed-by: Siddhartha S <ssid@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484003}
[modify] https://crrev.com/fd9c8e58a1eefc41917956bc1746acd6344b8f3a/components/tracing/BUILD.gn
[add] https://crrev.com/fd9c8e58a1eefc41917956bc1746acd6344b8f3a/components/tracing/common/DEPS
[modify] https://crrev.com/fd9c8e58a1eefc41917956bc1746acd6344b8f3a/components/tracing/common/process_metrics_memory_dump_provider.cc
[modify] https://crrev.com/fd9c8e58a1eefc41917956bc1746acd6344b8f3a/components/tracing/common/process_metrics_memory_dump_provider.h
[modify] https://crrev.com/fd9c8e58a1eefc41917956bc1746acd6344b8f3a/services/resource_coordinator/BUILD.gn
[modify] https://crrev.com/fd9c8e58a1eefc41917956bc1746acd6344b8f3a/services/resource_coordinator/public/cpp/BUILD.gn
[add] https://crrev.com/fd9c8e58a1eefc41917956bc1746acd6344b8f3a/services/resource_coordinator/public/cpp/memory_instrumentation/process_metrics_memory_dump_provider.cc
[add] https://crrev.com/fd9c8e58a1eefc41917956bc1746acd6344b8f3a/services/resource_coordinator/public/cpp/memory_instrumentation/process_metrics_memory_dump_provider.h
[rename] https://crrev.com/fd9c8e58a1eefc41917956bc1746acd6344b8f3a/services/resource_coordinator/public/cpp/memory_instrumentation/process_metrics_memory_dump_provider_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jul 7 2017

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

commit 36eedd751a6104eea2d3d25c5a8ff25b9bd13510
Author: Hector Dearman <hjd@google.com>
Date: Fri Jul 07 15:10:35 2017

memory-infra: Start cleaning up ProcessMetricsMemoryDumpProvider

ProcessMetricsMemoryDumpProvider uses a lot of ifdefs and is quite
confusing. Start pulling out the code into os_metrics.cc which will
have separate implementations for each platform.

Bug:  728199 
Change-Id: I2cbc2b2e8860dce3ea1b819affb4dee2170fd5f7
Reviewed-on: https://chromium-review.googlesource.com/555497
Commit-Queue: Hector Dearman <hjd@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#484927}
[modify] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/BUILD.gn
[modify] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/public/cpp/BUILD.gn
[add] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.cc
[add] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h
[add] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_linux.cc
[add] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_mac.cc
[add] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_unittest.cc
[add] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_win.cc
[modify] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/public/cpp/memory_instrumentation/process_metrics_memory_dump_provider.cc
[modify] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/public/cpp/memory_instrumentation/process_metrics_memory_dump_provider.h
[modify] https://crrev.com/36eedd751a6104eea2d3d25c5a8ff25b9bd13510/services/resource_coordinator/public/cpp/memory_instrumentation/process_metrics_memory_dump_provider_unittest.cc

Project Member

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

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

commit 7a7f78cbad1f42130136b066d72d293fe52047fe
Author: Siddhartha <ssid@chromium.org>
Date: Tue Jul 11 01:13:10 2017

[memory-infra] Move the tests related to tracing observer into service/

Move the tests related to tracing observer, peak detector and periodic
schduler into client_process_impl_unittests.
Removed test CallbackCalledOnFailure since it is covered by
DumpWithoutInitializingTracing

Bug:  728199 

Change-Id: Idb2fb0ed566e54ab6f6be825f844e2ffab9b4d16
Reviewed-on: https://chromium-review.googlesource.com/553585
Commit-Queue: Siddhartha S <ssid@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485477}
[modify] https://crrev.com/7a7f78cbad1f42130136b066d72d293fe52047fe/base/trace_event/memory_dump_manager_unittest.cc
[modify] https://crrev.com/7a7f78cbad1f42130136b066d72d293fe52047fe/services/resource_coordinator/BUILD.gn
[modify] https://crrev.com/7a7f78cbad1f42130136b066d72d293fe52047fe/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/7a7f78cbad1f42130136b066d72d293fe52047fe/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.h
[add] https://crrev.com/7a7f78cbad1f42130136b066d72d293fe52047fe/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Jul 11 2017

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

commit c6c5c962d96056d79f7b71e7335f5f2ea8ec7529
Author: Hector Dearman <hjd@google.com>
Date: Tue Jul 11 12:30:31 2017

memory-infra: Move mmap processing code to OSMetrics

Bug:  728199 
Change-Id: Icf0e54c66704901e31004c3d632290def1dfb558
Reviewed-on: https://chromium-review.googlesource.com/558255
Commit-Queue: Hector Dearman <hjd@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485606}
[modify] https://crrev.com/c6c5c962d96056d79f7b71e7335f5f2ea8ec7529/services/resource_coordinator/public/cpp/BUILD.gn
[delete] https://crrev.com/501aeaf33dca3248d44bc9d7d5979d34e9f68025/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.cc
[modify] https://crrev.com/c6c5c962d96056d79f7b71e7335f5f2ea8ec7529/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h
[modify] https://crrev.com/c6c5c962d96056d79f7b71e7335f5f2ea8ec7529/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_linux.cc
[modify] https://crrev.com/c6c5c962d96056d79f7b71e7335f5f2ea8ec7529/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_mac.cc
[modify] https://crrev.com/c6c5c962d96056d79f7b71e7335f5f2ea8ec7529/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_unittest.cc
[modify] https://crrev.com/c6c5c962d96056d79f7b71e7335f5f2ea8ec7529/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_win.cc
[modify] https://crrev.com/c6c5c962d96056d79f7b71e7335f5f2ea8ec7529/services/resource_coordinator/public/cpp/memory_instrumentation/process_metrics_memory_dump_provider.cc
[modify] https://crrev.com/c6c5c962d96056d79f7b71e7335f5f2ea8ec7529/services/resource_coordinator/public/cpp/memory_instrumentation/process_metrics_memory_dump_provider_unittest.cc

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 12 2017

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

commit 15617f0ba9ba58672ce22b2269017c7b12ec124f
Author: Siddhartha <ssid@chromium.org>
Date: Wed Jul 12 15:39:27 2017

memory-infra: Move TracingObserver to service/

The memory tracing observer along with peak detector and periodic
scheduler should live in service/resource_coordinator since the peak
detector needs to know about the OS dump providers.
The tests were moved in previous CL.

BUG= 728199 

Change-Id: Ib4934421d1d057fd7d062258179f17d3ca8209f7
Reviewed-on: https://chromium-review.googlesource.com/554280
Commit-Queue: Primiano Tucci <primiano@chromium.org>
Reviewed-by: Helen Li <xunjieli@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#485968}
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/base/BUILD.gn
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/base/trace_event/memory_allocator_dump.h
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/base/trace_event/memory_allocator_dump_unittest.cc
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/base/trace_event/memory_dump_manager.cc
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/base/trace_event/memory_dump_manager.h
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/base/trace_event/memory_dump_manager_unittest.cc
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/base/trace_event/memory_dump_request_args.h
[delete] https://crrev.com/3c9b1cb60a0f85032fb67540f0c584e401c72479/base/trace_event/memory_tracing_observer.cc
[delete] https://crrev.com/3c9b1cb60a0f85032fb67540f0c584e401c72479/base/trace_event/memory_tracing_observer.h
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/net/url_request/url_request_quic_perftest.cc
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/services/resource_coordinator/public/cpp/BUILD.gn
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.h
[add] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.cc
[add] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.h
[modify] https://crrev.com/15617f0ba9ba58672ce22b2269017c7b12ec124f/tools/gn/bootstrap/bootstrap.py

Project Member

Comment 14 by bugdroid1@chromium.org, Jul 12 2017

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

commit 7e3d0c0351183f0eab2384f2801db9ab755fe139
Author: Hongchan Choi <hongchan@chromium.org>
Date: Wed Jul 12 17:49:51 2017

Revert "memory-infra: Move TracingObserver to service/"

This reverts commit 15617f0ba9ba58672ce22b2269017c7b12ec124f.

Reason for revert:
https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20TSan%20Tests/builds/8765

base_unittest MemoryDumpManagerTest.PostTaskForSequencedTaskRunner is crashing due to the data race.

Original change's description:
> memory-infra: Move TracingObserver to service/
> 
> The memory tracing observer along with peak detector and periodic
> scheduler should live in service/resource_coordinator since the peak
> detector needs to know about the OS dump providers.
> The tests were moved in previous CL.
> 
> BUG= 728199 
> 
> Change-Id: Ib4934421d1d057fd7d062258179f17d3ca8209f7
> Reviewed-on: https://chromium-review.googlesource.com/554280
> Commit-Queue: Primiano Tucci <primiano@chromium.org>
> Reviewed-by: Helen Li <xunjieli@chromium.org>
> Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> Reviewed-by: Primiano Tucci <primiano@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#485968}

TBR=dcheng@chromium.org,primiano@chromium.org,dpranke@chromium.org,hjd@chromium.org,xunjieli@chromium.org,ssid@chromium.org

Change-Id: Iea202e6099216cb8ccad38d6f0d5354ea82643fe
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  728199 
Reviewed-on: https://chromium-review.googlesource.com/568401
Reviewed-by: Hongchan Choi <hongchan@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Hongchan Choi <hongchan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486014}
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/base/BUILD.gn
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/base/trace_event/memory_allocator_dump.h
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/base/trace_event/memory_allocator_dump_unittest.cc
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/base/trace_event/memory_dump_manager.cc
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/base/trace_event/memory_dump_manager.h
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/base/trace_event/memory_dump_manager_unittest.cc
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/base/trace_event/memory_dump_request_args.h
[add] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/base/trace_event/memory_tracing_observer.cc
[add] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/base/trace_event/memory_tracing_observer.h
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/net/url_request/url_request_quic_perftest.cc
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/services/resource_coordinator/public/cpp/BUILD.gn
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.h
[delete] https://crrev.com/24625c0bb5fbde74f558f2868f9f1a95a830c7a8/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.cc
[delete] https://crrev.com/24625c0bb5fbde74f558f2868f9f1a95a830c7a8/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.h
[modify] https://crrev.com/7e3d0c0351183f0eab2384f2801db9ab755fe139/tools/gn/bootstrap/bootstrap.py

Project Member

Comment 15 by bugdroid1@chromium.org, Jul 13 2017

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

commit 43929085bfb1df7bc1ad3231a3a71736a72dea38
Author: Siddhartha <ssid@chromium.org>
Date: Thu Jul 13 22:04:23 2017

Reland "memory-infra: Move TracingObserver to service/"

This reverts commit 7e3d0c0351183f0eab2384f2801db9ab755fe139.

Reason for revert:
The race was on second dump and shutdown.
1. The main thread starts a dump. Posts task on WP2 first for MPD1.
2. WP2-thread posts task to itself for MDP2.
3. WP2-thread posts task to WP1 for MDP1. At this point, WP2-thread
is waiting on WP1 to create a new thread.
4. The test finishes with WP1-thread finalizing the dump, main
thread returns.
5. The MDM destructor decides to delete it's reference to the task
runner (MDPInfo). This clears the WP1 first.

Step 5 calls WP1 destructor which calls thread destructor.
The thread in Step 3 comes back to life and tries to check if the
new thread has been created in WP1.
MDM should not destroy the task runner when PostTask is not done.
So, hold a reference in SetupNextMemoryDump().


Original change's description:
> Revert "memory-infra: Move TracingObserver to service/"
> 
> This reverts commit 15617f0ba9ba58672ce22b2269017c7b12ec124f.
> 
> Reason for revert:
> https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20TSan%20Tests/builds/8765
> 
> base_unittest MemoryDumpManagerTest.PostTaskForSequencedTaskRunner is crashing due to the data race.
> 
> Original change's description:
> > memory-infra: Move TracingObserver to service/
> > 
> > The memory tracing observer along with peak detector and periodic
> > scheduler should live in service/resource_coordinator since the peak
> > detector needs to know about the OS dump providers.
> > The tests were moved in previous CL.
> > 
> > BUG= 728199 
> > 
> > Change-Id: Ib4934421d1d057fd7d062258179f17d3ca8209f7
> > Reviewed-on: https://chromium-review.googlesource.com/554280
> > Commit-Queue: Primiano Tucci <primiano@chromium.org>
> > Reviewed-by: Helen Li <xunjieli@chromium.org>
> > Reviewed-by: Daniel Cheng <dcheng@chromium.org>
> > Reviewed-by: Primiano Tucci <primiano@chromium.org>
> > Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#485968}
> 
> TBR=dcheng@chromium.org,primiano@chromium.org,dpranke@chromium.org,hjd@chromium.org,xunjieli@chromium.org,ssid@chromium.org
> 
> Change-Id: Iea202e6099216cb8ccad38d6f0d5354ea82643fe
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug:  728199 
> Reviewed-on: https://chromium-review.googlesource.com/568401
> Reviewed-by: Hongchan Choi <hongchan@chromium.org>
> Reviewed-by: Dirk Pranke <dpranke@chromium.org>
> Commit-Queue: Hongchan Choi <hongchan@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#486014}

TBR=dcheng@chromium.org,primiano@chromium.org,dpranke@chromium.org,hjd@chromium.org,xunjieli@chromium.org,ssid@chromium.org,hongchan@chromium.org

Change-Id: Ic58718b4d4497f9cb28cb2962deb653b45f2f6da
Bug:  728199 
Reviewed-on: https://chromium-review.googlesource.com/568402
Commit-Queue: Siddhartha S <ssid@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Helen Li <xunjieli@chromium.org>
Reviewed-by: Siddhartha S <ssid@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486487}
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/base/BUILD.gn
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/base/trace_event/memory_allocator_dump.h
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/base/trace_event/memory_allocator_dump_unittest.cc
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/base/trace_event/memory_dump_manager.cc
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/base/trace_event/memory_dump_manager.h
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/base/trace_event/memory_dump_manager_unittest.cc
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/base/trace_event/memory_dump_request_args.h
[delete] https://crrev.com/c72172a8ead9a7f6c95a2395cbf45746961ac270/base/trace_event/memory_tracing_observer.cc
[delete] https://crrev.com/c72172a8ead9a7f6c95a2395cbf45746961ac270/base/trace_event/memory_tracing_observer.h
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/net/url_request/url_request_quic_perftest.cc
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/services/resource_coordinator/public/cpp/BUILD.gn
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.h
[add] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.cc
[add] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.h
[modify] https://crrev.com/43929085bfb1df7bc1ad3231a3a71736a72dea38/tools/gn/bootstrap/bootstrap.py

Project Member

Comment 16 by bugdroid1@chromium.org, Jul 21 2017

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

commit dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2
Author: Hector Dearman <hjd@google.com>
Date: Fri Jul 21 23:45:35 2017

memory-infra: Remove typemapping for a few structraits

The typemapping makes it super error-prone and painful to add fields and
now that we are out of base/ we don't need it anymore!

Bug:  728199 
Change-Id: I1312aad0811291ec6cf69aa83d79fbb6d1a6aa84
Reviewed-on: https://chromium-review.googlesource.com/567185
Reviewed-by: Robert Kaplow <rkaplow@chromium.org>
Reviewed-by: Siddhartha S <ssid@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Helen Li <xunjieli@chromium.org>
Commit-Queue: Siddhartha S <ssid@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488807}
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/base/trace_event/memory_dump_manager_unittest.cc
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/base/trace_event/memory_dump_request_args.cc
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/base/trace_event/memory_dump_request_args.h
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/chrome/browser/metrics/process_memory_metrics_emitter.cc
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/chrome/browser/metrics/process_memory_metrics_emitter_unittest.cc
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/net/url_request/url_request_quic_perftest.cc
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/services/resource_coordinator/memory_instrumentation/coordinator_impl.h
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.typemap
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation_struct_traits.cc
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation_struct_traits.h
[modify] https://crrev.com/dcc8dd15fa4c16dbc195e3672e37f06f4eca01a2/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc

Project Member

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

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

commit b6879eaf01bfd588b86e5176d2cad572431dbe97
Author: Hector Dearman <hjd@google.com>
Date: Wed Jul 26 09:36:47 2017

memory-infra: Add mmaps to OS Dump

- Creates a mojo struct (VmRegion) to represent a memory map.
- Adds a list of such structs to OSDump to represent a the
  memory maps of a process.
- Adds an (unused) flag to RequestOSMemoryDump to toggle whether
  to collect memory maps.
- Refactors OSMetrics to collect memory map information in terms
  of mojom::VmRegions.

Bug:  728199 
Change-Id: If5173f6410b59a8a72c5995993354e12ee6daecd
Reviewed-on: https://chromium-review.googlesource.com/574717
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Commit-Queue: Hector Dearman <hjd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489574}
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/cpp/BUILD.gn
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.h
[add] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.cc
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics.h
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_linux.cc
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_mac.cc
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_unittest.cc
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_win.cc
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/cpp/memory_instrumentation/process_metrics_memory_dump_provider.cc
[modify] https://crrev.com/b6879eaf01bfd588b86e5176d2cad572431dbe97/services/resource_coordinator/public/interfaces/memory_instrumentation/memory_instrumentation.mojom

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 28 2017

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

commit d51f7a407e31f63fe03785c8562d5d5fc8b5e50f
Author: Hector Dearman <hjd@google.com>
Date: Fri Jul 28 09:24:35 2017

memory-infra: Move a windows specific snippet to OSMetrics

Moves a small amount of code that adds a memory map from the
deprecated process_metrics_memory_dump_provider.cc to the new
shiny os_metrics_win.cc.

Historically this was part of the OS stats codepath rather than
the memory maps codepath despite the fact that it adds a memory
map (this led to it duplicating the condition that gated the
memory map code. I'm not sure why this was, possibly because of
the following alarming comment on GetProportionalSetSizeBytes:

Computes pss (proportional set size) of a process. Note that this
function is somewhat expensive on Windows (a few ms per process).

For now OsMetrics will suffer any cost associated with calling this
twice in succession. The CL which added the code originally
is here: https://codereview.chromium.org/2549803003

Bug:  728199 
Change-Id: I330d7323c02150cc104862f2a473625e8c6349a6
Reviewed-on: https://chromium-review.googlesource.com/586327
Commit-Queue: Hector Dearman <hjd@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490335}
[modify] https://crrev.com/d51f7a407e31f63fe03785c8562d5d5fc8b5e50f/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_unittest.cc
[modify] https://crrev.com/d51f7a407e31f63fe03785c8562d5d5fc8b5e50f/services/resource_coordinator/public/cpp/memory_instrumentation/os_metrics_win.cc
[modify] https://crrev.com/d51f7a407e31f63fe03785c8562d5d5fc8b5e50f/services/resource_coordinator/public/cpp/memory_instrumentation/process_metrics_memory_dump_provider.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Jul 28 2017

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

commit 3d197c0b3c6b2ff9cbce4990775f7bb120838231
Author: Hector Dearman <hjd@google.com>
Date: Fri Jul 28 11:34:31 2017

memory-infra: Start using new RequestOSMemoryDump API

Historically each process dumped their own OS stats
however this got very weird because of the Linux sandbox
(See  crbug.com/461788 ) which meant that on Linux (and
only on Linux) the browser dumps OS stats for all processes.

Combine this with trying to ship these stats to the service
in addition to putting them into a trace and we got into the
state where multiple places know about this workaround.
This CL moves to a world where the knowledge about the
sandbox workarounds is only in the service and the rest of
the code just does what asked by the service.

Concretely we do four things:
- Stops sending RawOSDumps inside the RawProcessMemoryDump
- Starts sending RawOSDumps in the result of RequestOSMemoryDump
- Stops writing the OS Metrics into the trace from the PMDs
- Starts writing the OS Metrics into the trace from the service

Bug:  728199 
Change-Id: I2a73fb613325bc223f3b36bd3b7bb0035dab3055
Reviewed-on: https://chromium-review.googlesource.com/565406
Commit-Queue: Hector Dearman <hjd@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490361}
[modify] https://crrev.com/3d197c0b3c6b2ff9cbce4990775f7bb120838231/base/trace_event/process_memory_dump.cc
[modify] https://crrev.com/3d197c0b3c6b2ff9cbce4990775f7bb120838231/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/3d197c0b3c6b2ff9cbce4990775f7bb120838231/services/resource_coordinator/memory_instrumentation/coordinator_impl.h
[modify] https://crrev.com/3d197c0b3c6b2ff9cbce4990775f7bb120838231/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
[modify] https://crrev.com/3d197c0b3c6b2ff9cbce4990775f7bb120838231/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/3d197c0b3c6b2ff9cbce4990775f7bb120838231/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc
[modify] https://crrev.com/3d197c0b3c6b2ff9cbce4990775f7bb120838231/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.cc
[modify] https://crrev.com/3d197c0b3c6b2ff9cbce4990775f7bb120838231/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.h

Project Member

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

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

commit a53b914728394e3d4b91153070ad948791f1fce2
Author: Hector Dearman <hjd@google.com>
Date: Mon Aug 07 16:24:37 2017

memory-infra: Remove RawProcessMemoryDump

RawProcessMemoryDump used to contain a ChromeDump, an
OS dump and a number of additional OS dumps (on Linux
for the browser process) we've moved collecting the OS
dumps into a separate API. Now we can remove
RawProcessMemoryDump and have all uses talk directly
about ChromeDumps.

Bug:  728199 
Change-Id: I35e645426e5f9be3c472681aaae004c0012279d7
Reviewed-on: https://chromium-review.googlesource.com/579908
Commit-Queue: Hector Dearman <hjd@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492336}
[modify] https://crrev.com/a53b914728394e3d4b91153070ad948791f1fce2/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/a53b914728394e3d4b91153070ad948791f1fce2/services/resource_coordinator/memory_instrumentation/coordinator_impl.h
[modify] https://crrev.com/a53b914728394e3d4b91153070ad948791f1fce2/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
[modify] https://crrev.com/a53b914728394e3d4b91153070ad948791f1fce2/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/a53b914728394e3d4b91153070ad948791f1fce2/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.h
[modify] https://crrev.com/a53b914728394e3d4b91153070ad948791f1fce2/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc
[modify] https://crrev.com/a53b914728394e3d4b91153070ad948791f1fce2/services/resource_coordinator/public/interfaces/memory_instrumentation/memory_instrumentation.mojom

Project Member

Comment 21 by bugdroid1@chromium.org, Aug 10 2017

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

commit dce3afaf024234eface994924401f798f89808f1
Author: Albert J. Wong <ajwong@chromium.org>
Date: Thu Aug 10 14:25:18 2017

memory-infra svc: expose an API to obatin mmaps for the heap profiler

The heap profiler needs to obtain the list of memory maps for the
various processes for symbolization purposes. Before this CL,
the memory_instrumentation didn't offer any way to retrieve
only the mmaps. Its only API, RequestGlobalMemoryDump():
- has the major drawback of wasting time hopping through all the
  MemoryDumpProider(s) (e.g., gpu textures, skia font caches) which
  are useless for the heap profiler.
- does not expose the mmaps obtained for the various processes.

This CL introduces a new method GetVmRegionsForHeapProfiler() which
exposes only the memory maps and doesn't attempt to collect the
data from the MemoryDumpProviders.

See comments in https://chromium-review.googlesource.com/c/602454
for more context.

Bug:  728199 
TBR: brettw
Change-Id: I5233ca35842fa6c812a89468554916cac9ca042b
Reviewed-on: https://chromium-review.googlesource.com/602623
Commit-Queue: Primiano Tucci <primiano@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Albert J. Wong <ajwong@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Reviewed-by: Oystein Eftevaag <oysteine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#493381}
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/base/trace_event/memory_dump_request_args.cc
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/base/trace_event/memory_dump_request_args.h
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/chrome/browser/metrics/process_memory_metrics_emitter_unittest.cc
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/chrome/profiling/json_exporter_unittest.cc
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/services/resource_coordinator/memory_instrumentation/coordinator_impl.h
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.cc
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation_struct_traits.cc
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc
[modify] https://crrev.com/dce3afaf024234eface994924401f798f89808f1/services/resource_coordinator/public/interfaces/memory_instrumentation/memory_instrumentation.mojom

Project Member

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

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

commit faf2f4954786a86d571997b65fa9bd9f2fbac9f4
Author: Hector Dearman <hjd@google.com>
Date: Wed Aug 16 11:13:57 2017

memory-infra: Add StructTraits tests to memory_instrumentation service

I want to add a new complicated type mapping (ProcessMemoryDump) to the
memory_instrumentation service, before that it would be nice to have the
test harness setup.

Bug:  728199 
Change-Id: Ifbad6bfb7c0ce617de37a9035ed407bcdc23d70f
Reviewed-on: https://chromium-review.googlesource.com/615262
Reviewed-by: Oystein Eftevaag <oysteine@chromium.org>
Commit-Queue: Hector Dearman <hjd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494746}
[modify] https://crrev.com/faf2f4954786a86d571997b65fa9bd9f2fbac9f4/services/resource_coordinator/BUILD.gn
[add] https://crrev.com/faf2f4954786a86d571997b65fa9bd9f2fbac9f4/services/resource_coordinator/public/cpp/memory_instrumentation/struct_traits_unittest.cc

Project Member

Comment 23 by bugdroid1@chromium.org, Aug 24 2017

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

commit 59ea8bef33e0517fc74bb2790fc93d03562c4ce5
Author: Hector Dearman <hjd@google.com>
Date: Thu Aug 24 11:52:48 2017

memory-infra: Remove const fields from ProcessMemoryDump

In order to pass ProcessMemoryDumps over mojo to the
memory-infra service it seems best to typemap it.
This requires having an empty constructor:
ProcessMemoryDump() which means no const feilds.

Bug:  728199 
Change-Id: I95c970f47d2664158eb51ec150471bacc62454b1
Reviewed-on: https://chromium-review.googlesource.com/615174
Reviewed-by: Siddhartha S <ssid@chromium.org>
Commit-Queue: Hector Dearman <hjd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497009}
[modify] https://crrev.com/59ea8bef33e0517fc74bb2790fc93d03562c4ce5/base/trace_event/process_memory_dump.cc
[modify] https://crrev.com/59ea8bef33e0517fc74bb2790fc93d03562c4ce5/base/trace_event/process_memory_dump.h

Project Member

Comment 24 by bugdroid1@chromium.org, Aug 24 2017

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

commit a54316af10d5becd3e3a75b0531ecdcade153da3
Author: Hector Dearman <hjd@google.com>
Date: Thu Aug 24 16:12:55 2017

memory-infra: Make ProcessMemoryDump movable

In order to pass ProcessMemoryDumps over mojo to the
memory-infra service it seems best to typemap it.
This requires making ProcessMemoryDump moveable if
we want to pass it as an optional parameter (which
we will in the case of failure).

Bug:  728199 
Change-Id: I74dfd2cd992411e1ce23ea21a04de612889c2f3a
Reviewed-on: https://chromium-review.googlesource.com/615400
Commit-Queue: Hector Dearman <hjd@chromium.org>
Reviewed-by: Siddhartha S <ssid@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497071}
[modify] https://crrev.com/a54316af10d5becd3e3a75b0531ecdcade153da3/base/trace_event/process_memory_dump.cc
[modify] https://crrev.com/a54316af10d5becd3e3a75b0531ecdcade153da3/base/trace_event/process_memory_dump.h
[modify] https://crrev.com/a54316af10d5becd3e3a75b0531ecdcade153da3/base/trace_event/process_memory_dump_unittest.cc

Project Member

Comment 25 by bugdroid1@chromium.org, Aug 25 2017

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

commit 475d139f8bafbd31c1cc018b18559f3eba85ac62
Author: Hector Dearman <hjd@google.com>
Date: Fri Aug 25 09:40:13 2017

memory-infra: Remove dumping on behalf of other processes

This removes the ability for ProcessDumpProviders to dump on
behalf of other processes. This feature was supported for
collecting OS statistics for many processes from the browser
process which was necessary on some platforms due to sandboxing.

Now that OS statistics are collected separately anyway we don't need the
feature and is the cause of unnecessary complexity (not to mention the
service refactoring has slightly broken it already).

Bug:  728199 
Change-Id: I702cfedd62dc795076e566344494db69e013fbd9
Reviewed-on: https://chromium-review.googlesource.com/616728
Commit-Queue: Hector Dearman <hjd@chromium.org>
Reviewed-by: Helen Li <xunjieli@chromium.org>
Reviewed-by: Siddhartha S <ssid@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497366}
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/base/trace_event/memory_dump_manager.cc
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/base/trace_event/memory_dump_manager.h
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/base/trace_event/memory_dump_manager_unittest.cc
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/base/trace_event/memory_dump_provider.h
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/base/trace_event/memory_dump_request_args.h
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/content/browser/tracing/memory_tracing_browsertest.cc
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/net/url_request/url_request_quic_perftest.cc
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.h
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.cc
[modify] https://crrev.com/475d139f8bafbd31c1cc018b18559f3eba85ac62/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.h

Project Member

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

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

commit 0fdf71e1a7f5a5f57c5525df2252718702424bf4
Author: Hector Dearman <hjd@google.com>
Date: Thu Aug 31 09:23:12 2017

memory-infra: MemoryAllocatorDump stores values instead of TracedValue

We want to be able to serialize MemoryAllocatorDumps for IPC,
this means keeping track of values set via AddScalar/AddScalarF/
AddString instead of serializing directly to a TracedValue.

Bug:  728199 
Change-Id: I9fa86b61a07369782b1fc58802bc60ec9d11563b
Reviewed-on: https://chromium-review.googlesource.com/618721
Commit-Queue: Hector Dearman <hjd@chromium.org>
Reviewed-by: Siddhartha S <ssid@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#498796}
[modify] https://crrev.com/0fdf71e1a7f5a5f57c5525df2252718702424bf4/base/trace_event/memory_allocator_dump.cc
[modify] https://crrev.com/0fdf71e1a7f5a5f57c5525df2252718702424bf4/base/trace_event/memory_allocator_dump.h
[modify] https://crrev.com/0fdf71e1a7f5a5f57c5525df2252718702424bf4/base/trace_event/memory_allocator_dump_unittest.cc

Project Member

Comment 27 by bugdroid1@chromium.org, Sep 11 2017

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

commit 9b16a3b0b991c68d76184ce5741aab0ed5009873
Author: Primiano Tucci <primiano@chromium.org>
Date: Mon Sep 11 11:05:14 2017

memory-infra: add struct-traits for memory dump objects

Introduce struct-traits for core memory-infra classes
and corresponding tests.
These struct traits will be used in the upcoming CLs
by the memory-instrumentation service to rationalize
the memory dumps in-process.

Note: the heap-profiler structures are deliberately
not serialized as there is no interest in carrying
them across processes.

BUG:  728199 
Change-Id: Iea4b6fcbd56f6bc2c951a8421b9452e5900083ae
Reviewed-on: https://chromium-review.googlesource.com/654858
Commit-Queue: Primiano Tucci <primiano@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Siddhartha S <ssid@chromium.org>
Cr-Commit-Position: refs/heads/master@{#500881}
[modify] https://crrev.com/9b16a3b0b991c68d76184ce5741aab0ed5009873/base/trace_event/memory_allocator_dump.cc
[modify] https://crrev.com/9b16a3b0b991c68d76184ce5741aab0ed5009873/base/trace_event/memory_allocator_dump.h
[modify] https://crrev.com/9b16a3b0b991c68d76184ce5741aab0ed5009873/base/trace_event/memory_allocator_dump_unittest.cc
[modify] https://crrev.com/9b16a3b0b991c68d76184ce5741aab0ed5009873/base/trace_event/process_memory_dump.cc
[modify] https://crrev.com/9b16a3b0b991c68d76184ce5741aab0ed5009873/base/trace_event/process_memory_dump.h
[modify] https://crrev.com/9b16a3b0b991c68d76184ce5741aab0ed5009873/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.typemap
[modify] https://crrev.com/9b16a3b0b991c68d76184ce5741aab0ed5009873/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation_struct_traits.cc
[modify] https://crrev.com/9b16a3b0b991c68d76184ce5741aab0ed5009873/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation_struct_traits.h
[modify] https://crrev.com/9b16a3b0b991c68d76184ce5741aab0ed5009873/services/resource_coordinator/public/cpp/memory_instrumentation/struct_traits_unittest.cc
[modify] https://crrev.com/9b16a3b0b991c68d76184ce5741aab0ed5009873/services/resource_coordinator/public/interfaces/memory_instrumentation/memory_instrumentation.mojom

Project Member

Comment 28 by bugdroid1@chromium.org, Sep 15 2017

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

commit fde1f92076efb79d66d242e5bcdff09f6b91e09e
Author: Primiano Tucci <primiano@chromium.org>
Date: Fri Sep 15 17:30:19 2017

memory-infra: Send ProcessMemoryDumps to the service

This CL is a major step towards moving the computation
of the memory metrics at runtime into the service. It
makes it so the client library in each process just
passes through the raw data collected by
base::MemoryDumpManager and gets rid of the temporary
summarization logic done in each process.
For the moment, the temporary summarization is still
there and just moved into the service. The upcoming CLs
get rid of that and compute the full memory graph instead.

Bug:  728199 
Change-Id: Ib29e393d9595481380d43f701018f373073b3d4d
Reviewed-on: https://chromium-review.googlesource.com/660237
Reviewed-by: Siddhartha S <ssid@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#502296}
[modify] https://crrev.com/fde1f92076efb79d66d242e5bcdff09f6b91e09e/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/fde1f92076efb79d66d242e5bcdff09f6b91e09e/services/resource_coordinator/memory_instrumentation/coordinator_impl.h
[modify] https://crrev.com/fde1f92076efb79d66d242e5bcdff09f6b91e09e/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
[modify] https://crrev.com/fde1f92076efb79d66d242e5bcdff09f6b91e09e/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/fde1f92076efb79d66d242e5bcdff09f6b91e09e/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.typemap
[modify] https://crrev.com/fde1f92076efb79d66d242e5bcdff09f6b91e09e/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation_struct_traits.h
[modify] https://crrev.com/fde1f92076efb79d66d242e5bcdff09f6b91e09e/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc
[modify] https://crrev.com/fde1f92076efb79d66d242e5bcdff09f6b91e09e/services/resource_coordinator/public/interfaces/memory_instrumentation/memory_instrumentation.mojom

Project Member

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

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

commit 1bf0b92e31e2c3bf34812fce6a148636cca68829
Author: Lalit Maganti <lalitm@chromium.org>
Date: Fri Oct 20 00:45:30 2017

memory-infra: Move chrome tracing dumps into the service

Since we now have the Chrome memory dumps in the service, we can now
centralise the code which performs the trace dumps.

Bug:  728199 
Change-Id: I7385a99782b9027a85eacd11a755a6d10bb3c8f1
Reviewed-on: https://chromium-review.googlesource.com/685854
Commit-Queue: Lalit Maganti <lalitm@chromium.org>
Reviewed-by: Hector Dearman <hjd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510274}
[modify] https://crrev.com/1bf0b92e31e2c3bf34812fce6a148636cca68829/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/1bf0b92e31e2c3bf34812fce6a148636cca68829/services/resource_coordinator/memory_instrumentation/coordinator_impl.h
[modify] https://crrev.com/1bf0b92e31e2c3bf34812fce6a148636cca68829/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
[modify] https://crrev.com/1bf0b92e31e2c3bf34812fce6a148636cca68829/services/resource_coordinator/public/cpp/memory_instrumentation/client_process_impl.cc
[modify] https://crrev.com/1bf0b92e31e2c3bf34812fce6a148636cca68829/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc
[modify] https://crrev.com/1bf0b92e31e2c3bf34812fce6a148636cca68829/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.cc
[modify] https://crrev.com/1bf0b92e31e2c3bf34812fce6a148636cca68829/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_observer.h

Blockedon: 768373
Owner: lalitm@chromium.org
Status: Started (was: Untriaged)

Comment 31 by u...@chromium.org, Dec 11 2017

Cc: u...@chromium.org
Project Member

Comment 32 by bugdroid1@chromium.org, Dec 12 2017

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

commit 1220248209411cf32441e865677bd2fd4240c0de
Author: Lalit Maganti <lalitm@chromium.org>
Date: Tue Dec 12 12:41:21 2017

memory-infra: enable full graph computation pipeline

Bug:  728199 
Change-Id: I440814aa37c687ab68fea5717cee36a051a4908d
Reviewed-on: https://chromium-review.googlesource.com/800553
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Commit-Queue: Lalit Maganti <lalitm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#523413}
[modify] https://crrev.com/1220248209411cf32441e865677bd2fd4240c0de/services/resource_coordinator/memory_instrumentation/graph_processor.cc
[modify] https://crrev.com/1220248209411cf32441e865677bd2fd4240c0de/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc

Project Member

Comment 33 by bugdroid1@chromium.org, Jan 11 2018

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

commit a3360971dab6da9c2a28f9362dee531c1a1e2ffe
Author: Lalit Maganti <lalitm@chromium.org>
Date: Thu Jan 11 19:12:05 2018

memory-infra: add generic mechanism to return allocator dump entries

We want a way to generically return the entries for particular nodes
in the memory graph. This CL allows the consumer of memory-infra
to pass in the nodes they are looking for which will then be returned
to them.

Bug:  728199 
Change-Id: Ib6364280dde0a2de55680eb630b05f2abf7ad0ed
Reviewed-on: https://chromium-review.googlesource.com/830946
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Commit-Queue: Lalit Maganti <lalitm@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528701}
[modify] https://crrev.com/a3360971dab6da9c2a28f9362dee531c1a1e2ffe/services/resource_coordinator/memory_instrumentation/coordinator_impl.cc
[modify] https://crrev.com/a3360971dab6da9c2a28f9362dee531c1a1e2ffe/services/resource_coordinator/memory_instrumentation/coordinator_impl.h
[modify] https://crrev.com/a3360971dab6da9c2a28f9362dee531c1a1e2ffe/services/resource_coordinator/memory_instrumentation/coordinator_impl_unittest.cc
[modify] https://crrev.com/a3360971dab6da9c2a28f9362dee531c1a1e2ffe/services/resource_coordinator/memory_instrumentation/queued_request.cc
[modify] https://crrev.com/a3360971dab6da9c2a28f9362dee531c1a1e2ffe/services/resource_coordinator/memory_instrumentation/queued_request.h
[modify] https://crrev.com/a3360971dab6da9c2a28f9362dee531c1a1e2ffe/services/resource_coordinator/memory_instrumentation/queued_request_dispatcher.cc
[modify] https://crrev.com/a3360971dab6da9c2a28f9362dee531c1a1e2ffe/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.cc
[modify] https://crrev.com/a3360971dab6da9c2a28f9362dee531c1a1e2ffe/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h
[modify] https://crrev.com/a3360971dab6da9c2a28f9362dee531c1a1e2ffe/services/resource_coordinator/public/cpp/memory_instrumentation/tracing_integration_unittest.cc
[modify] https://crrev.com/a3360971dab6da9c2a28f9362dee531c1a1e2ffe/services/resource_coordinator/public/interfaces/memory_instrumentation/memory_instrumentation.mojom

Project Member

Comment 34 by bugdroid1@chromium.org, Jan 16 2018

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

commit 881067b45d42aff812ff8035fb4ad8a0b5ddcb88
Author: Lalit Maganti <lalitm@chromium.org>
Date: Tue Jan 16 14:48:13 2018

memory-infra: add wrapper for global memory dumps

This wrapper will allow for consumers to obtain metrics without writing
boilerplate code and also allows us to expose more advanced and esoteric
data in the future if we wish

Bug:  728199 
Change-Id: I2dfa44840b5712c357144f6329484773db065b44
Reviewed-on: https://chromium-review.googlesource.com/860359
Commit-Queue: Lalit Maganti <lalitm@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529422}
[modify] https://crrev.com/881067b45d42aff812ff8035fb4ad8a0b5ddcb88/services/resource_coordinator/public/cpp/BUILD.gn
[add] https://crrev.com/881067b45d42aff812ff8035fb4ad8a0b5ddcb88/services/resource_coordinator/public/cpp/memory_instrumentation/global_memory_dump.cc
[add] https://crrev.com/881067b45d42aff812ff8035fb4ad8a0b5ddcb88/services/resource_coordinator/public/cpp/memory_instrumentation/global_memory_dump.h

Project Member

Comment 35 by bugdroid1@chromium.org, Jan 17 2018

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

commit 40e628c20a01135574964d3715c08676eeb6a5ea
Author: Lalit Maganti <lalitm@chromium.org>
Date: Wed Jan 17 17:01:55 2018

memory-infra: utilise new global dump wrapper struct

Replace instances of mojom::GlobalMemoryDumpPtr with
std::unique_ptr<GlobalMemoryDump>. This allows future refactors to
change the data passed to clients of memory-infra without changing
mojom files. This introduces the wrapper to all consumers of memory-infra.

This is in preparation for the next cl where we stop exposing pre-decided
aggregations and use the new API in memory_instrumentation to dynamically
require fields.

In order to do so clients like metrics_emitter cannot use directly the
mojo interface, because that would be too raw, and instead should switch
to this wrapper. In the next CL this wrapper will take care of extracting
metrics by name and any other features required.

Bug:  728199 
Change-Id: Ibb515641fffd30615102c6c9cda8b56b7b90f0d0
Reviewed-on: https://chromium-review.googlesource.com/860380
Commit-Queue: Lalit Maganti <lalitm@chromium.org>
Reviewed-by: Ryan Sturm <ryansturm@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Reviewed-by: Erik Chen <erikchen@chromium.org>
Reviewed-by: Primiano Tucci <primiano@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529778}
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/metrics/process_memory_metrics_emitter.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/metrics/process_memory_metrics_emitter.h
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/metrics/process_memory_metrics_emitter_browsertest.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/metrics/process_memory_metrics_emitter_unittest.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer.h
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_unittest.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/profiling_host/background_profiling_triggers.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/profiling_host/background_profiling_triggers.h
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/profiling_host/background_profiling_triggers_unittest.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/task_manager/sampling/task_manager_impl.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/chrome/browser/task_manager/sampling/task_manager_impl.h
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/content/browser/tracing/memory_instrumentation_browsertest.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/services/resource_coordinator/public/cpp/memory_instrumentation/global_memory_dump.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/services/resource_coordinator/public/cpp/memory_instrumentation/global_memory_dump.h
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.cc
[modify] https://crrev.com/40e628c20a01135574964d3715c08676eeb6a5ea/services/resource_coordinator/public/cpp/memory_instrumentation/memory_instrumentation.h

Status: Fixed (was: Started)
With the above CL we have all the code we need to perform graph computation in Chrome and surface to clients.

Sign in to add a comment