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

Issue 818627 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug-Regression

Blocked on:
issue 823315



Sign in to add a comment

34.5%-2494.3% regression in thread_times.key_silk_cases at 540571:540738

Project Member Reported by rmcilroy@chromium.org, Mar 5 2018

Issue description

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

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


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

android-nexus5
android-nexus5X
android-nexus6
android-nexus7v2
Cc: adamk@chromium.org gsat...@chromium.org
Owner: adamk@chromium.org
Status: Assigned (was: Untriaged)
📍 Found a significant difference after 1 commit.
https://pinpoint-dot-chromeperf.appspot.com/job/14cc175c440000

Reland "[parser] Remove pretenuring of closures assigned to properties" by adamk@chromium.org
https://chromium.googlesource.com/v8/v8/+/3d7ad2e7e53d3cd6add51512580c054abf7e5805

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions

Comment 4 by adamk@chromium.org, Mar 6 2018

Cc: bmeu...@chromium.org
Apparently this wasn't seen the first time we landed the removal of pretenuring. In fact I don't see the spike from that first landing, which makes me wonder if some intervening change is part of the cause here.

Comment 5 by adamk@chromium.org, Mar 6 2018

Components: Blink>JavaScript>GC Blink>JavaScript>Parser
This looks really odd. Do you know that these benchmarks are about?

Comment 7 by adamk@chromium.org, Mar 6 2018

"key_silk_cases" are generally about smooth animation/scrolling. And the metric here, "thread_other_cpu_time_per_frame", does suggest that something's getting in the way (my guess would be some GC work). rmcilroy, do you have more detailed background?
Cc: ajuma@chromium.org
I don't have any more details, what you describe sounds right to me. Adding ajuma@ who is listed as the benchmark owner in case they can provide any better background.
Don't have much more to add -- these tests measure cpu time for various threads. It's a bit surprising to me though that a V8 change would affect cpu time for raster worker threads or the browser, so I've triggered bisects on those changes.
📍 Found a significant difference after 1 commit.
https://pinpoint-dot-chromeperf.appspot.com/job/16d9e8ca440000

Reland "[parser] Remove pretenuring of closures assigned to properties" by adamk@chromium.org
https://chromium.googlesource.com/v8/v8/+/3d7ad2e7e53d3cd6add51512580c054abf7e5805

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions
📍 Found a significant difference after 1 commit.
https://pinpoint-dot-chromeperf.appspot.com/job/11b24e62440000

Reland "[parser] Remove pretenuring of closures assigned to properties" by adamk@chromium.org
https://chromium.googlesource.com/v8/v8/+/3d7ad2e7e53d3cd6add51512580c054abf7e5805

Understanding performance regressions:
  http://g.co/ChromePerformanceRegressions
My stab-in-the-dark guess is that if we look at a trace of this benchmark on a device, we'll see the V8 GC doing a bunch of work that's interfering with the ability of other browser/raster work to get scheduled by the OS.
Cc: majidvp@chromium.org
adamk@: perf bots produce trace and you can access them from perf dashboard. You may
also request the bot to produce a more detailed trace with desired categories.


Here is for example the default trace for one of the worst regressions: https://console.developers.google.com/m/cloudstorage/b/chrome-telemetry-output/o/http___mobile_news_sandbox_google_com_news_pt0_swipe_2018-03-03_02-30-08_19078.html

I am not sure what to look for but you may be able to test your hypothesis.


Comment 16 by adamk@chromium.org, Mar 19 2018

I ran a job (https://pinpoint-dot-chromeperf.appspot.com/job/14e62931440000) with some v8-specific tracing bits, but my trace-reading skills around non-renderer stuff are not sharp.

Comment 17 by adamk@chromium.org, Mar 19 2018

Bizarrely, this metric seems to have gone to 0 after https://chromium.googlesource.com/chromium/src/+log/b73107cb0226c61a1afae2457f2a3988c1b18c0b..2a7c3b2cd5c6ad903ae422d5e6ce45a123ab92ac. ajuma, does something in that commit log look like it could've caused this?

Comment 18 by ajuma@chromium.org, Mar 19 2018

Blockedon: 823315
Nothing obvious. I've filed  bug 823315  for bisecting that range.
Project Member

Comment 19 by bugdroid1@chromium.org, Mar 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5cf2ae5a4d7224198a0474eb27cc618b6843bc32

commit 5cf2ae5a4d7224198a0474eb27cc618b6843bc32
Author: Adam Klein <adamk@chromium.org>
Date: Mon Mar 26 19:09:22 2018

Revert "Reland "[parser] Remove pretenuring of closures assigned to properties""

This reverts commit 3d7ad2e7e53d3cd6add51512580c054abf7e5805.

Reason for revert: too many regressions to handle for now.

Original change's description:
> Reland "[parser] Remove pretenuring of closures assigned to properties"
>
> The memory gains were significant, so despite the bluebird-doxbee
> regression, we think it's better to have this patch than not.
> See the attached Chromium bug for more discussion.
>
> This is a reland of 20e346bd08591caff2f7c45de762ca4d4e3f72c8.
>
> Original change's description:
> > [parser] Remove pretenuring of closures assigned to properties
> >
> > This pretenuring was added in https://codereview.chromium.org/5220007,
> > back when it was necessary in order to allow use of the closure
> > as a "constant function" property. This should no longer be the case,
> > and the pretenuring causes some unfortunate downstream effects.
> >
> > This patch removes the parser's setting of this bit. If it doesn't
> > cause regressions on the perf bots, followup CLs will remove the
> > rest of the support for this feature.
> >
> > Bug:  v8:7442 
> > Change-Id: I27c43dd4293ce5de921be6c78571e712778d138a
> > Reviewed-on: https://chromium-review.googlesource.com/914610
> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> > Commit-Queue: Adam Klein <adamk@chromium.org>
> > Cr-Commit-Position: refs/heads/master@{#51254}
>
> Bug:  v8:7442 ,  chromium:814182 
> Change-Id: I228c59dccef3844803f115749e72ae6c5f286eda
> Reviewed-on: https://chromium-review.googlesource.com/938241
> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
> Commit-Queue: Adam Klein <adamk@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#51668}

Tbr: gsathya@chromium.org
Bug:  v8:7442 ,  v8:7524 ,  chromium:814182 ,  chromium:818627 ,  chromium:818672 ,  chromium:819994 ,  chromium:821788 
Change-Id: Ib760d63f879613f3b874889c5cb29ba2a77ba430
Reviewed-on: https://chromium-review.googlesource.com/980795
Commit-Queue: Adam Klein <adamk@chromium.org>
Reviewed-by: Adam Klein <adamk@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52233}
[modify] https://crrev.com/5cf2ae5a4d7224198a0474eb27cc618b6843bc32/src/parsing/parser-base.h
[modify] https://crrev.com/5cf2ae5a4d7224198a0474eb27cc618b6843bc32/src/parsing/parser.h
[modify] https://crrev.com/5cf2ae5a4d7224198a0474eb27cc618b6843bc32/src/parsing/preparser.h

Comment 20 by adamk@chromium.org, Mar 27 2018

Status: Fixed (was: Assigned)

Sign in to add a comment