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

Issue 804696 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Closed: Feb 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression

Blocking:
issue 676384



Sign in to add a comment

4.4% regression in thread_times.key_idle_power_cases at 528084:528214

Project Member Reported by khushalsagar@google.com, Jan 23 2018

Issue description

Project Member

Comment 1 by 42576172...@developer.gserviceaccount.com, Jan 23 2018

All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=804696

(For debugging:) Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?sid=51fe77a3749ac3f66f92e4a44ce3319cbcac4a287810a7803777f96ffc48e403


Bot(s) for this bug's original alert(s):

android-nexus5X
Project Member

Comment 2 by 42576172...@developer.gserviceaccount.com, Jan 23 2018

๐Ÿ“ Pinpoint job started.
https://pinpoint-dot-chromeperf.appspot.com/job/14faa624840000
Cc: vmi...@chromium.org
Project Member

Comment 4 by 42576172...@developer.gserviceaccount.com, Jan 23 2018

Cc: fsam...@chromium.org kylec...@chromium.org parastoog@google.com se...@chromium.org
Owner: kylec...@chromium.org
๐Ÿ“ Found significant differences after each of 2 commits.
https://pinpoint-dot-chromeperf.appspot.com/job/14faa624840000

[Autofill] Fill exp month w/ value (not content.)
By parastoog@google.com ยท Tue Jan 09 20:21:25 2018
chromium @ 5b24973e9cfafeb5c2240bb9142798a37eba8eee

viz: Turn on surface references again for Android.
By kylechar@chromium.org ยท Tue Jan 09 20:23:46 2018
chromium @ 78d11e5577a5bdd721b658dd000e8286d09f9019

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions
Status: Started (was: Assigned)
There is a timer that would run when idle that got enabled when I turned on surface references for Android. I think that is likely the cause of this regression.

I have a few ideas for how to remove the timer, or at least not have it run most of the time, and I will investigate those.
Project Member

Comment 6 by 42576172...@developer.gserviceaccount.com, Jan 24 2018

๐Ÿ“ Pinpoint job started.
https://pinpoint-dot-chromeperf.appspot.com/job/14bad05c840000
Project Member

Comment 7 by 42576172...@developer.gserviceaccount.com, Jan 24 2018

Cc: hnakashima@chromium.org jochen@chromium.org
Owner: hnakashima@chromium.org
Status: Assigned (was: Started)
๐Ÿ“ Found a significant difference after 1 commit.
https://pinpoint-dot-chromeperf.appspot.com/job/14bad05c840000

Add asm.js to build_config.h.
By hnakashima@chromium.org ยท Wed Jan 24 17:14:12 2018
chromium @ afff0508d704346222ee1c72e598d53e0ff146bc

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions
Cc: -jochen@chromium.org -hnakashima@chromium.org
Owner: kylec...@chromium.org
Ugh, sorry, I'm not sure why the pinpoint tool changed the owner. -hnakashima/jochen
Status: Started (was: Assigned)
I tested https://crrev.com/c/883775 which disables the timer when there are no temporary references and it looks like tasks_per_second_total_all dropped by -0.19. The original regression was +0.18, so that timer seems like the problem.

I'll deprecate the Compositing.SurfaceManager.NumOldTemporaryReferences UMA metric since it replies on the timer always running. It can be replaced with a different metric with a histogram of why each temporary reference was removed.
Blocking: 676384
Project Member

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

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

commit a69230f6dde44975012d93eeb106f6d3301d8809
Author: kylechar <kylechar@chromium.org>
Date: Mon Jan 29 17:57:18 2018

viz: Only run temporary reference timer if needed.

There is a timer in SurfaceManager that periodically checks for old
temporary reference and deletes them. This timer was always running to
drive an UMA stat, even if there are no temporary references to expire.
Running the timer unnecessarily caused a regression on Android in the
thread_times.key_idle_power_cases benchmark.

Stop the timer when there are no temporary references. This won't wake
the thread unnecessary and should save power. Also replace the UMA stat,
instead of tracking the number of expired temporary references per timer
tick, track the reason each temporary reference was removed. This new
UMA metric provides more information and isn't coupled to the
implementation.

Bug:  804696 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I5e4385a72ca597de29094b8352ed7908916f4cf0
Reviewed-on: https://chromium-review.googlesource.com/883775
Commit-Queue: kylechar <kylechar@chromium.org>
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532486}
[modify] https://crrev.com/a69230f6dde44975012d93eeb106f6d3301d8809/components/viz/service/frame_sinks/surface_references_unittest.cc
[modify] https://crrev.com/a69230f6dde44975012d93eeb106f6d3301d8809/components/viz/service/surfaces/surface_manager.cc
[modify] https://crrev.com/a69230f6dde44975012d93eeb106f6d3301d8809/components/viz/service/surfaces/surface_manager.h
[modify] https://crrev.com/a69230f6dde44975012d93eeb106f6d3301d8809/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/a69230f6dde44975012d93eeb106f6d3301d8809/tools/metrics/histograms/histograms.xml

Project Member

Comment 12 by 42576172...@developer.gserviceaccount.com, Jan 31 2018

๐Ÿ“ Pinpoint job started.
https://pinpoint-dot-chromeperf.appspot.com/job/14df0ce6840000
Project Member

Comment 13 by 42576172...@developer.gserviceaccount.com, Jan 31 2018

Cc: holte@chromium.org
Status: Assigned (was: Started)
๐Ÿ“ Found a significant difference after 1 commit.
https://pinpoint-dot-chromeperf.appspot.com/job/14df0ce6840000

viz: Only run temporary reference timer if needed.
By kylechar@chromium.org ยท Mon Jan 29 17:57:18 2018
chromium @ a69230f6dde44975012d93eeb106f6d3301d8809

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions
I guess we can now mark this ask FIXED?
Status: Verified (was: Assigned)
Confirmed fixed. Not sure if this warrants a merge back to M65, the regression seems pretty minor so I'm assuming no. Please reopen if anyone with more context feels this does warrant a merge back.

Sign in to add a comment