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
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
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
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
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
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
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
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
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
Add Oystein as owner, remove it from blocking the GRC master task.
Comment 1 by oysteine@chromium.org
, May 19 2017Status: Started (was: Untriaged)