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

Issue 649641 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature

Blocking:
issue 874928


Show other hotlists

Hotlists containing this issue:
TaskThrottling


Sign in to add a comment

Add UMA for number of wake-ups per second

Project Member Reported by skyos...@chromium.org, Sep 23 2016

Issue description

We should add UMA for the number of wake-ups we do per second, at least on the renderer main thread. We should also do some power measurements to ensure it is telling us something useful.

This metric would allow us to better see the impact of changes which reduce polling (IntersectionObserver) as well as more aggressive task throttling interventions.
 
Description: Show this description
Owner: altimin@chromium.org
Status: Assigned (was: Untriaged)
Cc: shrike@chromium.org
I seem to recall shrike@ is doing something here for telemetry - it might be worth syncing up.

Comment 4 by shrike@chromium.org, Jun 27 2017

process_metrics.cc includes the method GetIdleWakeupsPerSecond(), so it seems like that info is accessible. right now.
For the purpose of this task we are interested in calculating the number of wakeups from renderer scheduler data. This should be less noisy and more actionable than data coming from the OS (but we should make sure that these figures do correlate).
I believe the OS data will also include every app rather than just Chrome.

The downside of using renderer scheduler data is that it doesn't account for shared wakeups from other renderers, so it won't quite match ground truth. However since making that number smaller will generally  make things better, I think it's a good proxy.

Comment 7 by shrike@chromium.org, Jun 28 2017

By shared wakeups do you mean a wakeup that occurs while the CPU is already awake (because another thread has woken up it up)? process_metrics.cc only tracks idle wakes, not non-idle wakes. It's actually possible to get counts for both types of wakes on macOS but apparently that's not true on Windows.

Comment 8 by lgrey@chromium.org, Oct 4 2017

altimin@ are you actively working on this? If not, would you mind if I take it? I'm working on reducing wakeups on Mac and would find this stat useful to track progress.
Owner: lgrey@chromium.org
I'm quite happy to hand this off to you, I don't have any spare capacity to drive this in any foreseeable future. But I'm quite interested in your work, do you want to schedule a VC to discuss this?
Sure thing, I'll email you off-bug
Project Member

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

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

commit d1fc0b47a4343bf8376a839b0d75a6ee1ccfe1fb
Author: Leonard Grey <lgrey@chromium.org>
Date: Mon Oct 09 17:01:01 2017

[Mac] Report total idle wakeups instead of just package exits.

Currently, we report only a subset of idle wakeups in the task manager:
"package idle exits" (essentially a wakeup of the IC that includes the
processor, caches etc; see man powermetrics for details). This is a
useful metric, but it isn't what's shown in Activity Monitor or used
when calculating EXC_RESOURCE RESOURCE_TYPE_WAKEUPS exceptions (see
crbug.com/684051).

This changes |ProcessMetrics::GetIdleWakeupsPerSecond| to report
total wakeups, but maintains the package idle exit calculation
for reporting to UMA (will be in a follow-up CL).

Bug: 649641
Change-Id: I6034f258a101b26a2fd6b4b72708a0682c63b19a
Reviewed-on: https://chromium-review.googlesource.com/702049
Reviewed-by: Mark Mentovai <mark@chromium.org>
Reviewed-by: Jayson Adams <shrike@chromium.org>
Commit-Queue: Leonard Grey <lgrey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507396}
[modify] https://crrev.com/d1fc0b47a4343bf8376a839b0d75a6ee1ccfe1fb/base/process/process_metrics.cc
[modify] https://crrev.com/d1fc0b47a4343bf8376a839b0d75a6ee1ccfe1fb/base/process/process_metrics.h
[modify] https://crrev.com/d1fc0b47a4343bf8376a839b0d75a6ee1ccfe1fb/base/process/process_metrics_mac.cc

Project Member

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

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

commit dd079aa0d70170a362e6152a88d1a2741f8ad1cb
Author: Leonard Grey <lgrey@chromium.org>
Date: Tue Oct 10 22:14:16 2017

Collect idle wakeups per second via UMA

Also collects the Mac-only "package idle exits" per second.

Bug: 649641
Change-Id: I00b6e4b6eaab0833682b894b331fb446b6f68578
Reviewed-on: https://chromium-review.googlesource.com/707377
Reviewed-by: Alexei Svitkine <asvitkine@chromium.org>
Reviewed-by: oysteine <oysteine@chromium.org>
Commit-Queue: Leonard Grey <lgrey@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507790}
[modify] https://crrev.com/dd079aa0d70170a362e6152a88d1a2741f8ad1cb/chrome/browser/performance_monitor/process_metrics_history.cc
[modify] https://crrev.com/dd079aa0d70170a362e6152a88d1a2741f8ad1cb/chrome/browser/performance_monitor/process_metrics_history.h
[modify] https://crrev.com/dd079aa0d70170a362e6152a88d1a2741f8ad1cb/tools/metrics/histograms/histograms.xml

Project Member

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

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

commit 41293d4e27e3103e94bccc7cd0168a23a9e5e14b
Author: Leonard Grey <lgrey@chromium.org>
Date: Mon Oct 30 18:58:02 2017

Only report idle wakeups from supported platforms

This hits a NOTIMPLEMENTED on Windows:
https://bugs.chromium.org/p/chromium/issues/detail?id=726505#c10

Restricting it to the platforms that have an implementation in
process_metrics.cc

Bug: 649641
Change-Id: I02648ae4b09ac24fad6ec6894db91b5a82939f92
Reviewed-on: https://chromium-review.googlesource.com/734360
Commit-Queue: Leonard Grey <lgrey@chromium.org>
Reviewed-by: oysteine <oysteine@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512563}
[modify] https://crrev.com/41293d4e27e3103e94bccc7cd0168a23a9e5e14b/chrome/browser/performance_monitor/process_metrics_history.cc
[modify] https://crrev.com/41293d4e27e3103e94bccc7cd0168a23a9e5e14b/chrome/browser/performance_monitor/process_metrics_history.h

Comment 14 by ojan@chromium.org, May 8 2018

Cc: -ojan@chromium.org
Blocking: 874928

Sign in to add a comment