Make FP, FCP, FCP consistent between TBM, UMA, UKM & web perf API |
|||||
Issue descriptionCurrently web perf API is using more accurate timestamps - until GPU swap. The rest are using less accurate timestamp ie time in blink during paint - this is missing a large part of the rendering pipeline (rasterization etc) and reporting even when the swap may not have actually happened (eg. nothing to paint, because window was occluded or minimized). This bug is to update everything to the more accurate timestamp.
,
Jun 30 2017
Note that this will cause a bunch of "regressions", as the new definition reports higher values. When landing the telemetry changes, make sure the CL description includes something like "Regresses Load", or similar, so perf sheriffs can more easily find the source of the regression.
,
Jul 11 2017
,
Jul 13 2017
,
Jul 21 2017
,
Jul 26 2017
Disabling the test PageLoadMetricsBrowserTest.BadXhtml in CL https://chromium-review.googlesource.com/c/550520/ (in CQ)
,
Aug 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c3f876b18c07c50b360b93fb91ec67549b58deb8 commit c3f876b18c07c50b360b93fb91ec67549b58deb8 Author: Scott Haseley <shaseley@google.com> Date: Thu Aug 10 00:40:36 2017 Use swap time for all first paint times in TBM, UMA, UKM & web perf API Buffer swap timestamps were previously recorded but not used for either web perf API or internal TBM, UMA, and UKM-based metrics for first paint, first contentful paint, and first meaningful paint. This CL uses the swap timestamps consistently for all first paint metrics, which includes first paint (FP), first contentful paint (FCP), first meaningful paint (FMP), first image paint (FIP), and first text paint (FTP). This CL also adds 3 new UMAs to evaluate the transition: 1) PageLoad.Internal.Renderer.PaintTiming.SwapResult. The buffer swap is not guaranteed to occur, and our current approach is to use the timestamp regardless of swap failure. However, in the future this may change for certain failure reasons (commit aborts). This metric records how often the swap occurs and why it fails. 2) PageLoad.Internal.Renderer.PaintTiming.SwapTimeDelta. This metric records the differnce between the old, renderer-based timestamp and the new swap-based timestamp. 3) PageLoad.Internal.Renderer.FirstMeaningfulPaintDetector.NetworkQuietBeforeSwapPromiseReported. This records how often the network 2-quiet timer fired before an FMP swap timestamp was reported. In cases where this happens, FMP would have already been reported to PaintTiming with a swap time of 0. NOTE: This change may cause regressions in telemetry perf tests for page loads. The swap timestamps occur *after* the renderer-based timestamps they are replacing, so any tests using FP, FCP, FMP, FTP, or FIP may appear to have regressed. Bug: 738235 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: Ie8c7c72b59b8a26c73d0cd34f3ead95a166a9959 Reviewed-on: https://chromium-review.googlesource.com/576371 Commit-Queue: Scott Haseley <shaseley@google.com> Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org> Reviewed-by: enne <enne@chromium.org> Reviewed-by: Kentaro Hara <haraken@chromium.org> Reviewed-by: Shubhie Panicker <panicker@chromium.org> Reviewed-by: Bryan McQuade <bmcquade@chromium.org> Reviewed-by: Ilya Sherman <isherman@chromium.org> Cr-Commit-Position: refs/heads/master@{#493191} [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/content/renderer/gpu/render_widget_compositor.cc [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/content/renderer/gpu/render_widget_compositor.h [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetector.cpp [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetector.h [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetectorTest.cpp [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/third_party/WebKit/Source/core/paint/PaintEvent.h [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/third_party/WebKit/Source/core/paint/PaintTiming.cpp [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/third_party/WebKit/Source/core/paint/PaintTiming.h [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/third_party/WebKit/public/platform/WebLayerTreeView.h [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/tools/metrics/histograms/enums.xml [modify] https://crrev.com/c3f876b18c07c50b360b93fb91ec67549b58deb8/tools/metrics/histograms/histograms.xml
,
Aug 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/20649c43b994d7735b43df473c7380d2091969d0 commit 20649c43b994d7735b43df473c7380d2091969d0 Author: Scott Haseley <shaseley@google.com> Date: Mon Aug 28 22:40:04 2017 Use swap time for first meaningful paint candidates FMP was recently updated to use swap time (https://chromium-review.googlesource.com/c/chromium/src/+/576371). The diffs between the previous paint timestamp and swap timestamps look as expected, and this CL updates the FMP candidate used by the renderer scheduler and v8. Bug: 738235 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: I7ae381ee272b2386aa65e9fa8cf6b602c517d463 Reviewed-on: https://chromium-review.googlesource.com/633903 Reviewed-by: Sami Kyöstilä <skyostil@chromium.org> Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org> Reviewed-by: Shubhie Panicker <panicker@chromium.org> Reviewed-by: Steve Kobes <skobes@chromium.org> Commit-Queue: Scott Haseley <shaseley@google.com> Cr-Commit-Position: refs/heads/master@{#497909} [modify] https://crrev.com/20649c43b994d7735b43df473c7380d2091969d0/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetector.cpp [modify] https://crrev.com/20649c43b994d7735b43df473c7380d2091969d0/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetector.h [modify] https://crrev.com/20649c43b994d7735b43df473c7380d2091969d0/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetectorTest.cpp
,
Aug 29 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ea842652ade759fd60cc607889df9facb4cd768f commit ea842652ade759fd60cc607889df9facb4cd768f Author: Tarun Bansal <tbansal@chromium.org> Date: Tue Aug 29 00:03:34 2017 Revert "Use swap time for first meaningful paint candidates" This reverts commit 20649c43b994d7735b43df473c7380d2091969d0. Reason for revert: Breaks build https://uberchromegw.corp.google.com/i/chromium.mac/builders/Mac10.9%20Tests%20%28dbg%29/builds/44380 [78431:771:0828/163525.473940:FATAL:FirstMeaningfulPaintDetector.cpp(307)] Check failed: swap_stamp >= stamp (39864.3 vs. 39864.6) Original change's description: > Use swap time for first meaningful paint candidates > > FMP was recently updated to use swap time > (https://chromium-review.googlesource.com/c/chromium/src/+/576371). > The diffs between the previous paint timestamp and swap timestamps look > as expected, and this CL updates the FMP candidate used by the renderer > scheduler and v8. > > Bug: 738235 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 > Change-Id: I7ae381ee272b2386aa65e9fa8cf6b602c517d463 > Reviewed-on: https://chromium-review.googlesource.com/633903 > Reviewed-by: Sami Kyöstilä <skyostil@chromium.org> > Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org> > Reviewed-by: Shubhie Panicker <panicker@chromium.org> > Reviewed-by: Steve Kobes <skobes@chromium.org> > Commit-Queue: Scott Haseley <shaseley@google.com> > Cr-Commit-Position: refs/heads/master@{#497909} TBR=ksakamoto@chromium.org,skyostil@chromium.org,skobes@chromium.org,panicker@chromium.org,shaseley@google.com Change-Id: Id23de975d7f939e3d51caab503d244aa9ad94f72 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 738235 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Reviewed-on: https://chromium-review.googlesource.com/639167 Reviewed-by: Tarun Bansal <tbansal@chromium.org> Commit-Queue: Tarun Bansal <tbansal@chromium.org> Cr-Commit-Position: refs/heads/master@{#497947} [modify] https://crrev.com/ea842652ade759fd60cc607889df9facb4cd768f/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetector.cpp [modify] https://crrev.com/ea842652ade759fd60cc607889df9facb4cd768f/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetector.h [modify] https://crrev.com/ea842652ade759fd60cc607889df9facb4cd768f/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetectorTest.cpp
,
Aug 31 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e8dfd2da399e98b0aacba0057a85d546ac095233 commit e8dfd2da399e98b0aacba0057a85d546ac095233 Author: Scott Haseley <shaseley@google.com> Date: Thu Aug 31 05:36:48 2017 Reland: "Use swap time for first meaningful paint candidates" This is a reland of 20649c43b994d7735b43df473c7380d2091969d0 This CL fixes the wrong non-swap timestamp being used when the last outstanding swap promise is cleared, and adds a test that simulates the conditions that caused the DCHECKS to fail causing the revert. Original change's description: > Use swap time for first meaningful paint candidates > > FMP was recently updated to use swap time > (https://chromium-review.googlesource.com/c/chromium/src/+/576371). > The diffs between the previous paint timestamp and swap timestamps look > as expected, and this CL updates the FMP candidate used by the renderer > scheduler and v8. > > Bug: 738235 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 > Change-Id: I7ae381ee272b2386aa65e9fa8cf6b602c517d463 > Reviewed-on: https://chromium-review.googlesource.com/633903 > Reviewed-by: Sami Kyöstilä <skyostil@chromium.org> > Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org> > Reviewed-by: Shubhie Panicker <panicker@chromium.org> > Reviewed-by: Steve Kobes <skobes@chromium.org> > Commit-Queue: Scott Haseley <shaseley@google.com> > Cr-Commit-Position: refs/heads/master@{#497909} Bug: 738235 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2 Change-Id: Ifddf4548ee60920b61100eb09ac1507caa2408f1 Reviewed-on: https://chromium-review.googlesource.com/639914 Reviewed-by: Sami Kyöstilä <skyostil@chromium.org> Reviewed-by: Steve Kobes <skobes@chromium.org> Reviewed-by: Kunihiko Sakamoto <ksakamoto@chromium.org> Commit-Queue: Scott Haseley <shaseley@google.com> Cr-Commit-Position: refs/heads/master@{#498764} [modify] https://crrev.com/e8dfd2da399e98b0aacba0057a85d546ac095233/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetector.cpp [modify] https://crrev.com/e8dfd2da399e98b0aacba0057a85d546ac095233/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetector.h [modify] https://crrev.com/e8dfd2da399e98b0aacba0057a85d546ac095233/third_party/WebKit/Source/core/paint/FirstMeaningfulPaintDetectorTest.cpp [modify] https://crrev.com/e8dfd2da399e98b0aacba0057a85d546ac095233/third_party/WebKit/Source/core/paint/PaintTiming.h
,
Aug 31 2017
,
Sep 1 2017
The timestamps look as expected so I'm closing this bug. Cleanup work is crbug.com/747484. |
|||||
►
Sign in to add a comment |
|||||
Comment 1 by panicker@google.com
, Jun 29 2017