New issue
Advanced search Search tips

Issue 738235 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue 741961

Blocking:
issue 747484



Sign in to add a comment

Make FP, FCP, FCP consistent between TBM, UMA, UKM & web perf API

Project Member Reported by panicker@google.com, Jun 29 2017

Issue description

Currently 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.
 

Comment 1 by panicker@google.com, Jun 29 2017

Cc: tdres...@chromium.org
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.
Project Member

Comment 3 by sheriffbot@chromium.org, Jul 11 2017

Labels: Hotlist-Google

Comment 4 by shaseley@google.com, Jul 13 2017

Blockedon: 741961

Comment 5 by shaseley@google.com, Jul 21 2017

Blocking: 747484
Disabling the test PageLoadMetricsBrowserTest.BadXhtml in CL https://chromium-review.googlesource.com/c/550520/ (in CQ)
Project Member

Comment 7 by bugdroid1@chromium.org, 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

Project Member

Comment 8 by bugdroid1@chromium.org, 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

Project Member

Comment 9 by bugdroid1@chromium.org, 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

Project Member

Comment 10 by bugdroid1@chromium.org, 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

Cc: panicker@chromium.org shaseley@google.com
 Issue 738575  has been merged into this issue.
Status: Fixed (was: Assigned)
The timestamps look as expected so I'm closing this bug. Cleanup work is crbug.com/747484.

Sign in to add a comment