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

Issue 709054 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug-Regression

Blocked on:
issue 711039



Sign in to add a comment

30% regression in battor.steady_state at 461746:461884

Project Member Reported by pmeenan@chromium.org, Apr 6 2017

Issue description

See the link to graphs below.
 
All graphs for this bug:
  https://chromeperf.appspot.com/group_report?bug_id=709054

Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgIDgvKmf4ggM


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

chromium-rel-mac-retina

=== BISECT JOB RESULTS ===
Bisect was unable to run to completion

Error: INFRA_FAILURE

The bisect was able to narrow the range, you can try running with:
  good_revision: c348edb0c510441efe4ae5b8b1cfccc47f3c15ce
  bad_revision : 25ea37cccbe86c9e65cf62aed6d1363b3a5aedc5

If failures persist contact the team (see below) and report the error.


Bisect Details
  Configuration: mac_retina_perf_bisect
  Benchmark    : battor.steady_state
  Metric       : cpu_time_percentage_avg/https___instagram.com_cnn_

Revision             Result                      N
chromium@461745      0.290977 +- 0.0118279       6      good
chromium@461815      0.293746 +- 0.00266326      6      good
chromium@461833      0.390152 +- 0.0161979       6      bad
chromium@461850      0.383112 +- 0.00189722      6      bad
chromium@461884      0.381895 +- 0.00202329      6      bad

To Run This Test
  src/tools/perf/run_benchmark -v --browser=release --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=https...instagram.com.cnn. battor.steady_state

Debug Info
  https://chromeperf.appspot.com/buildbucket_job_status/8983050783849574624

Is this bisect wrong?
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5810304631439360


| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Speed>Bisection.  Thank you!
Blockedon: 711039
Project Member

Comment 7 by 42576172...@developer.gserviceaccount.com, Apr 13 2017

Cc: wangxianzhu@chromium.org
Owner: wangxianzhu@chromium.org

=== Auto-CCing suspected CL author wangxianzhu@chromium.org ===

Hi wangxianzhu@chromium.org, the bisect results pointed to your CL, please take a look at the
results.


=== BISECT JOB RESULTS ===
Perf regression found with culprit

Suspected Commit
  Author : wangxianzhu
  Commit : 347d17a607d7f379ba66bb4904869c1b530aac2b
  Date   : Tue Apr 04 20:53:55 2017
  Subject: setMayNeedPaintInvalidation in setNeedsOverflowRecalcAfterStyleChange()

Bisect Details
  Configuration: mac_retina_perf_bisect
  Benchmark    : battor.steady_state
  Metric       : cpu_time_percentage_avg/https___instagram.com_cnn_
  Change       : 29.63% | 0.292294272476 -> 0.378889949695

Revision             Result                      N
chromium@461815      0.292294 +- 0.00611524      6      good
chromium@461824      0.291491 +- 0.00295458      6      good
chromium@461827      0.292469 +- 0.00137271      6      good
chromium@461828      0.289752 +- 0.0231325       6      good
chromium@461829      0.391527 +- 0.00318031      6      bad       <--
chromium@461833      0.37889 +- 0.0136567        6      bad

To Run This Test
  src/tools/perf/run_benchmark -v --browser=release --output-format=chartjson --upload-results --pageset-repeat=1 --also-run-disabled-tests --story-filter=https...instagram.com.cnn. battor.steady_state

Debug Info
  https://chromeperf.appspot.com/buildbucket_job_status/8982417601995895120

Is this bisect wrong?
  https://chromeperf.appspot.com/bad_bisect?try_job_id=5296570049757184


| O O | Visit http://www.chromium.org/developers/speed-infra/perf-bug-faq
|  X  | for more information addressing perf regression bugs. For feedback,
| / \ | file a bug with component Speed>Bisection.  Thank you!
Project Member

Comment 8 by bugdroid1@chromium.org, Apr 21 2017

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

commit 1def26285e4b62c398bb800dadeeecc566a41900
Author: wangxianzhu <wangxianzhu@chromium.org>
Date: Fri Apr 21 03:11:26 2017

Don't include descendants into LocalVisualRect if a box has both mask and overflow clip

This avoids unnecessary paint invalidation when the box's descedants
change visual overflow which doesn't affect the box's local visual rect
because of the overflow clip.

About the bug: the page contains the following HTML:
  <div style="overflow: hidden; -webkit-mask-image: url(#a)>
    <div class="animating rotation transform"></div>
  </div>
The animating child changes the container's layout overflow.
https://codereview.chromium.org/2791933003/ fixed an under-invalidation
issue when layout overflow changes, but unnecessarily invalidated the
container because previously LayoutBox::LocalVisualRect() also included
descendant visual overflow if there is a mask regardless of overflow
clip.

BUG= 709054 

Review-Url: https://codereview.chromium.org/2826273005
Cr-Commit-Position: refs/heads/master@{#466243}

[modify] https://crrev.com/1def26285e4b62c398bb800dadeeecc566a41900/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/1def26285e4b62c398bb800dadeeecc566a41900/third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp

Labels: Merge-Request-59
Status: Started (was: Untriaged)
Please tag with applicable OSs.  Thanks.
Labels: OS-All
The performance is tested on Mac only, but the code affects all platforms.
Project Member

Comment 14 by sheriffbot@chromium.org, Apr 22 2017

Labels: -Merge-Request-59 Hotlist-Merge-Approved Merge-Approved-59
Your change meets the bar and is auto-approved for M59. Please go ahead and merge the CL to branch 3071 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), gkihumba@(ChromeOS), Abdul Syed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 15 by bugdroid1@chromium.org, Apr 22 2017

Labels: -merge-approved-59 merge-merged-3071
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/198917a86accada7eb94e50b93ca0a7253fce823

commit 198917a86accada7eb94e50b93ca0a7253fce823
Author: wangxianzhu <wangxianzhu@chromium.org>
Date: Sat Apr 22 03:42:04 2017

Don't include descendants into LocalVisualRect if a box has both mask and overflow clip

This avoids unnecessary paint invalidation when the box's descedants
change visual overflow which doesn't affect the box's local visual rect
because of the overflow clip.

About the bug: the page contains the following HTML:
  <div style="overflow: hidden; -webkit-mask-image: url(#a)>
    <div class="animating rotation transform"></div>
  </div>
The animating child changes the container's layout overflow.
https://codereview.chromium.org/2791933003/ fixed an under-invalidation
issue when layout overflow changes, but unnecessarily invalidated the
container because previously LayoutBox::LocalVisualRect() also included
descendant visual overflow if there is a mask regardless of overflow
clip.

BUG= 709054 

Review-Url: https://codereview.chromium.org/2826273005
Cr-Commit-Position: refs/heads/master@{#466243}
TBR=wangxianzhu@chromium.org
NOTRY=true
NOPRESUBMIT=true

Review-Url: https://codereview.chromium.org/2833263002
Cr-Commit-Position: refs/branch-heads/3071@{#141}
Cr-Branched-From: a106f0abbf69dad349d4aaf4bcc4f5d376dd2377-refs/heads/master@{#464641}

[modify] https://crrev.com/198917a86accada7eb94e50b93ca0a7253fce823/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/198917a86accada7eb94e50b93ca0a7253fce823/third_party/WebKit/Source/core/layout/LayoutBoxTest.cpp

Status: Fixed (was: Started)

Sign in to add a comment