Issue metadata
Sign in to add a comment
|
4.4% regression in thread_times.key_idle_power_cases at 528084:528214 |
||||||||||||||||||||
Issue descriptionhttps://pinpoint-dot-chromeperf.appspot.com/job/148996d8840000 bisected the regression to https://chromium.googlesource.com/chromium/src/+/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99. Forking this from issue 802396 .
,
Jan 23 2018
๐ Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/14faa624840000
,
Jan 23 2018
,
Jan 23 2018
๐ 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
,
Jan 24 2018
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.
,
Jan 24 2018
๐ Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/14bad05c840000
,
Jan 24 2018
๐ 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
,
Jan 24 2018
Ugh, sorry, I'm not sure why the pinpoint tool changed the owner. -hnakashima/jochen
,
Jan 24 2018
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.
,
Jan 29 2018
,
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
,
Jan 31 2018
๐ Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/14df0ce6840000
,
Jan 31 2018
๐ 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
,
Jan 31 2018
I guess we can now mark this ask FIXED?
,
Feb 1 2018
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 |
|||||||||||||||||||||
Comment 1 by 42576172...@developer.gserviceaccount.com
, Jan 23 2018