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

Issue 624309 link

Starred by 4 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Bug-Regression



Sign in to add a comment

3.1%-11.9% regression in speedometer at 402275:402368

Project Member Reported by epertoso@chromium.org, Jun 29 2016

Issue description

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

Original alerts at time of bug-filing:
  https://chromeperf.appspot.com/group_report?keys=agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4tbpoQoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4pzCqgoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgorW_pAoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4sCCsgoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgos6RuQkM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgopfprAoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4sDmqwoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4urwuwoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgope9vQkM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4rj1sAoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgoufstgkM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4pzttwoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgotfQswoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgoq7OswoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgovX9swoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4sC7tgoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgotPFpAoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgourQpAoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4tjXpgkM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgopPYqwkM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4tyqsAoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgoreisAoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICgopPY6wgM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4vjnsgoM,agxzfmNocm9tZXBlcmZyFAsSB0Fub21hbHkYgICg4vzyrwoM


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

android-galaxy-s5
android-nexus5
android-nexus6
android-nexus9
chromium-rel-mac-hdd
chromium-rel-mac-retina
chromium-rel-mac11
chromium-rel-win10
chromium-rel-win7-dual
chromium-rel-win7-gpu-ati
chromium-rel-win7-gpu-intel
chromium-rel-win7-gpu-nvidia
chromium-rel-win7-x64-dual
chromium-rel-win8-dual
linux-release
Cc: hablich@chromium.org
Labels: -Pri-2 ReleaseBlock-Stable Pri-1
We shouldn't release to Stable without any resolution on this issue.
Cc: epertoso@chromium.org
Owner: ishell@chromium.org
Local bisect seems to point to:
https://chromium.googlesource.com/v8/v8/+/70318619905dd1a10ac0f063da19cebf6d385ba0

Assigning to ishell@.
Cc: ishell@chromium.org jarin@chromium.org rmcilroy@chromium.org
Labels: OS-All
Owner: ssanfilippo@chromium.org
The Speedometer benchmark seem so be a little bit flaky and a more careful local bisect points to: 7d073b03c710b34f001fedd074f0ec9fbbaa5623.

The fix should also be merged to M-53.
I vote to revert this CL for now (and merge the revert) if possible and relanding it when the perf issue is resolved.
While possible, it seems unlikely to me that this is 7d073b03c710b34f001fedd074f0ec9fbbaa5623. That CL shouldn't do anything at all (other than some additional checks when creating code objects) unless the --perf_prof_unwinding_info is enabled. 

How sure are you of the bisecting Igor?  If fairly sure we can speculatively revert and see if the regression recovers.

The changes that might have an impact on performance are:

* one extra branch in Code::code_size(), Code::CopyFrom() and Factory::NewCode(), to account for the optional unwinding info in calculating object size and copying information. That branch is never taken at the current stage, because we never emit unwinding information.
* 2 extra fields that need to be initialised in CodeDesc, unwinding_info and unwinding_info_size.

Other than that, I am not sure there is anything else that might affect performance, but yes, we might try reverting and seeing if things improve.
I'm 90% sure (see the attachment). I also have an idea which part of the CL caused the regression I see. Let me check it and then decide how to move forward.
Screenshot from 2016-07-07 12:45:10.png
435 KB View Download
Cc: ssanfilippo@chromium.org
Owner: ishell@chromium.org
My guess is that it is the addition of a HasUnwindingInfoField to Code::flags that caused the regression. The megamorphic stub cache seems to be very sensitive to the flags value. I noticed that when I tried to remove the ICStateField field from flags field. 

I tried locally to move the HasUnwindingInfoField field to where the ICStateField is currently located and it seems to recover the situation a bit. I'll prepare the CL. The next thing I'm going to do is to split the stub cache into two caches: one for loads and another for stores which will let us exclude flags from hash computations.

Thanks for looking into this Igor, really appreciated!
Project Member

Comment 13 by bugdroid1@chromium.org, Jul 7 2016

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

commit 3486bbc219d83a118770ae1aa579929b20cdba5d
Author: ishell <ishell@chromium.org>
Date: Thu Jul 07 12:42:23 2016

[runtime] Move HasUnwindingInfoField of Code::flags to unused ICStateField.

This should recover the regression caused by https://codereview.chromium.org/1993653003.
(Same sympthoms as in http://crbug/619016).

BUG= chromium:624309 

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

[modify] https://crrev.com/3486bbc219d83a118770ae1aa579929b20cdba5d/src/objects.h

Cc: lanwei@chromium.org
 Issue 623969  has been merged into this issue.
That was unexpected. Thank you very much Igor!
Status: Fixed (was: Assigned)
The regression recovered.
Labels: Merge-request-5.3

Comment 18 by dimu@google.com, Jul 11 2016

Labels: Merge-Review Hotlist-Merge-Review
[Automated comment] No milestone found on Merge-Request (i.e. merge-request-# label).

Comment 19 by dimu@google.com, Jul 11 2016

[Automated comment] No milestone found on Merge-Request (i.e. merge-request-# label).

Comment 20 by dimu@google.com, Jul 11 2016

[Automated comment] No milestone found on Merge-Request (i.e. merge-request-# label).

Comment 21 by dimu@google.com, Jul 11 2016

[Automated comment] No milestone found on Merge-Request (i.e. merge-request-# label).

Comment 22 by dimu@google.com, Jul 11 2016

[Automated comment] No milestone found on Merge-Request (i.e. merge-request-# label).

Comment 23 by dimu@google.com, Jul 11 2016

[Automated comment] No milestone found on Merge-Request (i.e. merge-request-# label).

Comment 24 by dimu@google.com, Jul 11 2016

[Automated comment] No milestone found on Merge-Request (i.e. merge-request-# label).

Comment 25 by dimu@google.com, Jul 11 2016

[Automated comment] No milestone found on Merge-Request (i.e. merge-request-# label).
Labels: Merge-Request-53

Comment 27 by dimu@google.com, Jul 11 2016

Labels: -Merge-Request-53 Merge-Approved-53 Hotlist-Merge-Approved
Your change meets the bar and is auto-approved for M53 (branch: 2785)

Comment 28 by dimu@google.com, Jul 11 2016

[Automated comment] No milestone found on Merge-Request (i.e. merge-request-# label).

Comment 29 by dimu@google.com, Jul 11 2016

[Automated comment] No milestone found on Merge-Request (i.e. merge-request-# label).
Labels: -Merge-request-5.3
Project Member

Comment 31 by bugdroid1@chromium.org, Jul 11 2016

Labels: merge-merged-5.3
The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/6055d91b1a6e391873f7bff7248e98070a7011ce

commit 6055d91b1a6e391873f7bff7248e98070a7011ce
Author: ishell@chromium.org <ishell@chromium.org>
Date: Mon Jul 11 11:04:53 2016

Version 5.3.332.14 (cherry-pick)

Merged 3486bbc219d83a118770ae1aa579929b20cdba5d

[runtime] Move HasUnwindingInfoField of Code::flags to unused ICStateField.

BUG= chromium:624309 
LOG=N
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/2136973002 .

Cr-Commit-Position: refs/branch-heads/5.3@{#17}
Cr-Branched-From: 820a23aade5e74a92d794e05a0c2b3597f0da4b5-refs/heads/5.3.332@{#2}
Cr-Branched-From: 37538cb2c1b4d75c41af386cb4fedbe5566f5608-refs/heads/master@{#37308}

[modify] https://crrev.com/6055d91b1a6e391873f7bff7248e98070a7011ce/include/v8-version.h
[modify] https://crrev.com/6055d91b1a6e391873f7bff7248e98070a7011ce/src/objects.h

Project Member

Comment 32 by sheriffbot@chromium.org, Jul 14 2016

This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Please merge your change to M53 branch 2785 ASAP (latest by 4:00 PM PST on Monday, 07/18) in order to make it to M53 dev release next week before Beta promotion.
Labels: -Merge-Approved-53
Per comment #31,this is already merged to M53. So removing "Merge-Approved-53" label.
 Issue 623975  has been merged into this issue.
 Issue 625640  has been merged into this issue.

Sign in to add a comment