New issue
Advanced search Search tips

Issue 724306 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Apr 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature



Sign in to add a comment

GRC: Add process CPU metrics

Project Member Reported by oysteine@chromium.org, May 18 2017

Issue description

1. Add ProcessCoordinationUnits to the GRC
2. Poll the OS for CPU utilization
3. Plumb to FrameCUs whenever possible
4. Plumb the domain attribution up to UKM
5. ...
6. Profit

 
Owner: matthalp@google.com
Status: Started (was: Untriaged)
Components: Speed
Blocking: 724335
Project Member

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

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

commit e97f707738a7c04418efe00cd4c68d5ef2fea3c8
Author: matthalp <matthalp@google.com>
Date: Mon May 22 17:58:07 2017

[GRC] Process Coordination Unit support for Global Resource Controller

Quick design tl;dr:

* ProcessCoordinationUnitImpl
  Specific implementation of CoordinationUnitImpl for tracking
  processes within GRC of which it is derived from

* CoordinationUnitFactory
  Currently supports making ProcessCoordinationUnitImpl for
  CoordinationUnitType:kProcess and then a vanilla
  CoordinationUnitImpl for any ohter CoordinationUnitType

* CoordinationUnitImplBaseTest
  A base class for unit testing CoordinationUnitImpl and
  its derived classes

R=oysteine@chromium.org, rockot@chromium.org
BUG= 724306 

Review-Url: https://codereview.chromium.org/2892443002
Cr-Commit-Position: refs/heads/master@{#473620}

[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/BUILD.gn
[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/DEPS
[add] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/coordination_unit_factory.cc
[add] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/coordination_unit_factory.h
[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/coordination_unit_impl.h
[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/coordination_unit_impl_unittest.cc
[add] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/coordination_unit_impl_unittest_util.cc
[add] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/coordination_unit_impl_unittest_util.h
[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/coordination_unit_provider_impl.cc
[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/coordination_unit_provider_impl.h
[add] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.cc
[add] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/process_coordination_unit_impl.h
[add] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/coordination_unit/process_coordination_unit_impl_unittest.cc
[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/public/cpp/coordination_unit_id.cc
[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/public/cpp/coordination_unit_id.h
[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/public/cpp/resource_coordinator_interface.cc
[modify] https://crrev.com/e97f707738a7c04418efe00cd4c68d5ef2fea3c8/services/resource_coordinator/public/cpp/resource_coordinator_interface.h

Project Member

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

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

commit 85378cec1bed7f00a92ff1c658eed044e2518a79
Author: matthalp <matthalp@google.com>
Date: Tue Jun 06 03:43:38 2017

[GRC] Coordination Unit Manager Modularization

Encapsulate GRC functionalities related to coordination unit management
as this is only one aspect of GRC. There are also a few minor
refactorings included as well.

This CL depends on: https://codereview.chromium.org/2710823003

R=oysteine@chromium.org
BUG= 724306 

Review-Url: https://codereview.chromium.org/2914003002
Cr-Commit-Position: refs/heads/master@{#477184}

[modify] https://crrev.com/85378cec1bed7f00a92ff1c658eed044e2518a79/services/resource_coordinator/BUILD.gn
[modify] https://crrev.com/85378cec1bed7f00a92ff1c658eed044e2518a79/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
[modify] https://crrev.com/85378cec1bed7f00a92ff1c658eed044e2518a79/services/resource_coordinator/coordination_unit/coordination_unit_impl.h
[add] https://crrev.com/85378cec1bed7f00a92ff1c658eed044e2518a79/services/resource_coordinator/coordination_unit/coordination_unit_manager.cc
[add] https://crrev.com/85378cec1bed7f00a92ff1c658eed044e2518a79/services/resource_coordinator/coordination_unit/coordination_unit_manager.h
[modify] https://crrev.com/85378cec1bed7f00a92ff1c658eed044e2518a79/services/resource_coordinator/coordination_unit/coordination_unit_provider_impl.cc
[modify] https://crrev.com/85378cec1bed7f00a92ff1c658eed044e2518a79/services/resource_coordinator/coordination_unit/coordination_unit_provider_impl.h
[modify] https://crrev.com/85378cec1bed7f00a92ff1c658eed044e2518a79/services/resource_coordinator/public/cpp/coordination_unit_id.cc
[modify] https://crrev.com/85378cec1bed7f00a92ff1c658eed044e2518a79/services/resource_coordinator/resource_coordinator_service.cc
[modify] https://crrev.com/85378cec1bed7f00a92ff1c658eed044e2518a79/services/resource_coordinator/resource_coordinator_service.h

Project Member

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

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

commit ea83d48cabb2932915f6d812f0ca83c89c0c5add
Author: matthalp <matthalp@google.com>
Date: Tue Jun 06 17:24:29 2017

[GRC] Coordination Unit Key-Value Storage

GRC's coordination unit abstraction has been enhanced to provide an
internal key-value "property store" that can be used to store *interesting*
runtime information relevant to what the coordination unit is tracking.

In its current form, the key-value store consists of an enum-based key
and a base::Value value. Using an enum for the key helps to enforce
isolation between the property store users, while the base::Value allows
the property store to work for a variety of different types.
*** The final key-value pair type is still being iterated upon ***

While the key-value store can be accessed through a member accessor,
it is intended to be used through:

- CoordinationUnitImpl::SetProperty to set properties
- CoordinationUnitImpl::GetProperty to access properties
- CoordinationUnitImpl::ClearProperty to clear properties

Additionally, we extend the CoordinationUnitImpl mojo interface to
allow code outside of GRC to set properties. The interface may be
extended in the future to support the other operations, but that is
not an immediate concern here.

This CL depends on: https://codereview.chromium.org/2914003002

R=oysteine@chromium.org
BUG= 724306 

Review-Url: https://codereview.chromium.org/2917793002
Cr-Commit-Position: refs/heads/master@{#477317}

[modify] https://crrev.com/ea83d48cabb2932915f6d812f0ca83c89c0c5add/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
[modify] https://crrev.com/ea83d48cabb2932915f6d812f0ca83c89c0c5add/services/resource_coordinator/coordination_unit/coordination_unit_impl.h
[modify] https://crrev.com/ea83d48cabb2932915f6d812f0ca83c89c0c5add/services/resource_coordinator/coordination_unit/coordination_unit_impl_unittest.cc
[modify] https://crrev.com/ea83d48cabb2932915f6d812f0ca83c89c0c5add/services/resource_coordinator/public/interfaces/coordination_unit.mojom

Project Member

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

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

commit e5ea152d0b65df17dcf3aa72cd7a3fc734f94495
Author: matthalp <matthalp@google.com>
Date: Fri Jun 09 23:58:07 2017

[GRC] Correctly Invalidate RenderProcessHost's CU Interface

The RenderProcessHost CoordinationUnitInterface currently does not
remain up-to-date with when the RenderProcessHosts's RenderProcess
changes -- specifically when the RenderProcess dies.

This CL addresses the problem by invalidating the RenderProcessHosts's
CoordinationUnitInterface when it detects the RenderProcess has died.
Additionally checks have been made to make sure the RenderProcess
is valid.

R=oysteine@chromium.org,nasko@chromium.org
BUG= 724306 

Review-Url: https://codereview.chromium.org/2926563005
Cr-Commit-Position: refs/heads/master@{#478467}

[modify] https://crrev.com/e5ea152d0b65df17dcf3aa72cd7a3fc734f94495/content/browser/renderer_host/render_process_host_impl.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 13 2017

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

commit a7f5acc2721d0735725d522748eaa90bf64a22b6
Author: matthalp <matthalp@google.com>
Date: Tue Jun 13 00:07:18 2017

[GRC] ResourceCoordinatorInterface support to remove children

This CL extends the ResourceCoordinatorInterface to remove children.
the ResourceCoordinatorInterface has been updated, as well as the
CoordinationUnit, it's mojo interface definition, and unittests. A
few header issues were added based on a linter pass.

R=oysteine@chromium.org,nasko@chromium.org
BUG= 724306 

Review-Url: https://codereview.chromium.org/2929883002
Cr-Commit-Position: refs/heads/master@{#478829}

[modify] https://crrev.com/a7f5acc2721d0735725d522748eaa90bf64a22b6/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
[modify] https://crrev.com/a7f5acc2721d0735725d522748eaa90bf64a22b6/services/resource_coordinator/coordination_unit/coordination_unit_impl.h
[modify] https://crrev.com/a7f5acc2721d0735725d522748eaa90bf64a22b6/services/resource_coordinator/coordination_unit/coordination_unit_impl_unittest.cc
[modify] https://crrev.com/a7f5acc2721d0735725d522748eaa90bf64a22b6/services/resource_coordinator/public/cpp/resource_coordinator_interface.cc
[modify] https://crrev.com/a7f5acc2721d0735725d522748eaa90bf64a22b6/services/resource_coordinator/public/cpp/resource_coordinator_interface.h
[modify] https://crrev.com/a7f5acc2721d0735725d522748eaa90bf64a22b6/services/resource_coordinator/public/interfaces/coordination_unit.mojom

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 21 2017

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

commit a2c1ff6a5f04699131e02568187ad9e68b7738f0
Author: matthalp <matthalp@google.com>
Date: Wed Jun 21 01:45:43 2017

[GRC] Coordination Unit Graph Observer

The CoordinationUnitGraphObserver framework provides an API to observe and respond to to interesting events that occur throughout coordination unit lifetimes’ within the resource_coordinator service.

R=*lpy@chromium.org,*oysteine@chromium.org,zhenw@chromium.org
BUG= 724306 

Review-Url: https://codereview.chromium.org/2942403002
Cr-Commit-Position: refs/heads/master@{#481076}

[modify] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/BUILD.gn
[add] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_graph_observer.cc
[add] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_graph_observer.h
[add] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_graph_observer_unittest.cc
[modify] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
[modify] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_impl.h
[modify] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_impl_unittest_util.cc
[modify] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_impl_unittest_util.h
[modify] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_manager.cc
[modify] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_manager.h
[modify] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_provider_impl.cc
[modify] https://crrev.com/a2c1ff6a5f04699131e02568187ad9e68b7738f0/services/resource_coordinator/coordination_unit/coordination_unit_provider_impl.h

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 23 2017

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

commit 097bcd379f843c5dcb8821d6049fd9e8b6814cfd
Author: matthalp <matthalp@google.com>
Date: Fri Jun 23 23:26:30 2017

[GRC] UKM Support

This CL adds UKM support to GRC. Of particular interest is the
ability to create UkmEntryBuilders as the ResourceCoordinatorService
serves as the UKM client for all of the modules within GRC.

There is a software layering issue that prevents making UKM support
within GRC straightforward to implement. The UKM service currently
lives within the content_browser service which is out-of-scope for
the resource_coordinator service to bind to. When UKM will be moved
into its own service is TBD, so as a workaround the
resource_coordinator_web_contents_observer is used to create the
UkmRecorderInterface which is then passed into the resource_coordinator
service through a newly added interface: ServiceCallbacks. The
ServiceCallbacks will also be used as a stopgap to solve the same
layering problem that may occur with services of interest to GRC.

Currently, the only module, and main user of this capability, is the
CoordinationUnitManager. The intention is to provide an interface
for CoordinationUnitManagerObservers (CL link:
https://codereview.chromium.org/2926663003) to send metrics to UKM.
Note that the exact name for CoordinationUnitMangerObservers is still TBD.

Design Doc Link:
https://docs.google.com/document/d/1p03qPe0mwkUcY9t9drbUucSDYsScgpIXxGPbDQIcvkk/edit

R=*dcheng@chromium.org,*holte@chromium.org,nasko@chromium.org,*oysteine@chromium.org,zhenw@chromium.org,fmeawad@chromium.org
BUG= 724306 

Review-Url: https://codereview.chromium.org/2938443002
Cr-Commit-Position: refs/heads/master@{#482069}

[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/chrome/browser/chrome_content_browser_manifest_overlay.json
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/chrome/browser/resource_coordinator/DEPS
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/chrome/browser/resource_coordinator/resource_coordinator_web_contents_observer.cc
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/chrome/browser/resource_coordinator/resource_coordinator_web_contents_observer.h
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/components/ukm/public/mojo_ukm_recorder.cc
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/components/ukm/public/mojo_ukm_recorder.h
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/components/ukm/public/ukm_recorder.h
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/content/public/app/mojo/content_browser_manifest.json
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/BUILD.gn
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/DEPS
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/coordination_unit/coordination_unit_manager.cc
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/coordination_unit/coordination_unit_manager.h
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/manifest.json
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/public/interfaces/BUILD.gn
[add] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/public/interfaces/service_callbacks.mojom
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/resource_coordinator_service.cc
[modify] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/resource_coordinator_service.h
[add] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/service_callbacks_impl.cc
[add] https://crrev.com/097bcd379f843c5dcb8821d6049fd9e8b6814cfd/services/resource_coordinator/service_callbacks_impl.h

Project Member

Comment 11 by sheriffbot@chromium.org, Aug 9 2017

Labels: Hotlist-Recharge-BouncingOwner
Owner: ----
Status: Untriaged (was: Started)
The assigned owner "matthalp@google.com" is not able to receive e-mails, please re-triage.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot

Comment 12 by l...@chromium.org, Oct 17 2017

Blocking: -724335
Labels: -Hotlist-Recharge-BouncingOwner Hotlist-GRC
Owner: oysteine@chromium.org
Status: Assigned (was: Untriaged)
Add Oystein as owner, remove it from blocking the GRC master task.
Status: WontFix (was: Assigned)

Sign in to add a comment