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

Issue 794865 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Jan 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Feature



Sign in to add a comment

Remove the argument limit for optimizable functions

Reported by manjian2...@gmail.com, Dec 14 2017

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36

Steps to reproduce the problem:
1. Open https://testdrive-archive.azurewebsites.net/Performance/FishIETank/Default.html
2. Open chrome://tracing
3. Click Record
4. Select v8.runtime and v8.runtime_stats
5. Click Record
6. Will find plenty of Builtin_HandleApiCall in the v8.callFunction children.

What is the expected behavior?
No Builtin_HandleApiCall involved.

What went wrong?
class CallApiCallbackStub : public PlatformCodeStub {
 public:
  static const int kArgBits = 3;
  static const int kArgMax = (1 << kArgBits) - 1;

Make kArgsMax equals to 7.But drawImage call in Default.html:308 has 9 arguments.

Did this work before? N/A 

Chrome version: 63.0.3239.84  Channel: stable
OS Version: 
Flash Version:
 
Components: -Blink Blink>JavaScript
Cc: sc00335...@techmahindra.com
Labels: Needs-Triage-M63 Needs-Feedback Triaged-ET
Unable to reproduce this issue on reported version 63.0.3239.84 using Ubuntu 14.04 with steps mentioned below.

1. Launched chrome and navigated to https://testdrive-archive.azurewebsites.net/Performance/FishIETank/Default.html
2. Navigated to chrome://tracing, Clicked record and selected v8.runtime and v8.runtime_stats and recorded trace
3. Did not observe any Builtin_HandleApiCall in both chrome://tracing and also on saved trace file. Attaching trace file for reference.

@Reporter: Please let us know if we miss anything from steps, also check the attached file and let us know where to see Builtin_HandleApiCall. This would help in further triaging of the issue.

Thanks!
trace_794865.json.gz
9.5 MB Download
Okay. I forget to add one step.See the new steps.
1. Open https://testdrive-archive.azurewebsites.net/Performance/FishIETank/Default.html
2. Open chrome://tracing
3. Click Record
4. Select v8.runtime and v8.runtime_stats
5. Click Record
6. Click back the test drive tab.
7. Will find plenty of Builtin_HandleApiCall in the v8.callFunction children.
Like this
无标题.png
117 KB View Download
Project Member

Comment 5 by sheriffbot@chromium.org, Dec 15 2017

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding requester "sc00335628@techmahindra.com" to the cc list and removing "Needs-Feedback" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: Needs-Feedback
Unable to reproduce this issue as we are seeing V8.execute only and unable to see V8.Builtin_HandleApiCall after recording the trace.

@Reporter: If possible please attach the trace log here. Also could you please guide us with a video to reproduce the issue. And also could you please let us know on which flavour of Linux you are seeing this issue. This would help in debugging of issue further.
issue 794865.png
194 KB View Download
I think you may forget to select v8.runtime and v8.runtime_stats column.
1. Open https://testdrive-archive.azurewebsites.net/Performance/FishIETank/Default.html
2. Open chrome://tracing
3. Click Record
4. Select "Javascript and rendering"
5. Click "Edit categories"
6. Select v8.runtime and v8.runtime_stats
7. Click Record
8. Click back the test drive tab.
9. Will find plenty of Builtin_HandleApiCall in the v8.callFunction children
trace_Thu_Dec_28_2017_下午6.12.04.json.gz
3.1 MB Download
Project Member

Comment 8 by sheriffbot@chromium.org, Dec 28 2017

Labels: -Needs-Feedback
Thank you for providing more feedback. Adding requester "sc00335628@techmahindra.com" to the cc list and removing "Needs-Feedback" label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Components: -Blink>JavaScript Blink>JavaScript>Compiler
Labels: -Type-Bug Type-Feature
Status: Available (was: Unconfirmed)
Summary: Remove the argument limit for optimizable functions (was: FishIE Tank Failed to Optimize drawImage APICall)
Owner: bmeu...@chromium.org
Status: Assigned (was: Available)
Thanks for the report and the suggestion. Bumping the kArgBits to 7 makes total sense. 
Project Member

Comment 11 by bugdroid1@chromium.org, Jan 3 2018

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

commit ca16cc23377ce0cdc32973a713a62ef03f806c1b
Author: Benedikt Meurer <bmeurer@chromium.org>
Date: Wed Jan 03 09:29:02 2018

[turbofan] Bump CallApiCallbackStub::kArgBits to 7.

This allows TurboFan to inline API function calls with more than 7
parameters. It's now possible to inline API function calls with up
to 127 parameters, which should be sufficiently large.

Bug:  chromium:794865 
Change-Id: I974fed740cd3506d0b8d75ed922227364c51a1fb
Reviewed-on: https://chromium-review.googlesource.com/848712
Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#50335}
[modify] https://crrev.com/ca16cc23377ce0cdc32973a713a62ef03f806c1b/src/code-stubs.h

Status: Fixed (was: Assigned)

Sign in to add a comment