Bug 102852 - [V8] 7% regression in dromaeo_domcorequery/dom_query_getElementsByTagName__not_in_document
Summary: [V8] 7% regression in dromaeo_domcorequery/dom_query_getElementsByTagName__no...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: DOM (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Adam Barth
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-20 16:50 PST by Ojan Vafai
Modified: 2012-11-23 13:49 PST (History)
5 users (show)

See Also:


Attachments
Patch (2.13 KB, patch)
2012-11-20 17:18 PST, Adam Barth
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Comment 1 Adam Barth 2012-11-20 16:53:14 PST
Rolling out my patch now.
Comment 2 Adam Barth 2012-11-20 16:55:11 PST
The rollout has a conflict.  :*(
Comment 3 Adam Barth 2012-11-20 17:07:15 PST
I'm just going to try to fix this directly rather than rolling out.  There have been a bunch of dependent patches landed already.
Comment 4 Adam Barth 2012-11-20 17:18:10 PST
Created attachment 175310 [details]
Patch
Comment 5 Kentaro Hara 2012-11-20 17:24:49 PST
Comment on attachment 175310 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=175310&action=review

Looks reasonable.

> Source/WebCore/bindings/v8/DOMDataStore.cpp:65
> +        V8DOMWindowShell* shell = V8DOMWindowShell::isolated(v8::Context::GetEntered());
> +        if (UNLIKELY(!!shell))
> +            return shell->world()->isolatedWorldDOMDataStore();

Maybe you can simplify the code by using worldForEnteredContextIfIsolated()?
Comment 6 Adam Barth 2012-11-20 17:27:39 PST
Comment on attachment 175310 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=175310&action=review

>> Source/WebCore/bindings/v8/DOMDataStore.cpp:65
>> +            return shell->world()->isolatedWorldDOMDataStore();
> 
> Maybe you can simplify the code by using worldForEnteredContextIfIsolated()?

That has an extra v8::Context::InContext() check that we don't need.
Comment 7 Kentaro Hara 2012-11-20 17:28:14 PST
(In reply to comment #6)
> > Maybe you can simplify the code by using worldForEnteredContextIfIsolated()?
> 
> That has an extra v8::Context::InContext() check that we don't need.

Makes sense.
Comment 8 WebKit Review Bot 2012-11-20 18:16:11 PST
Comment on attachment 175310 [details]
Patch

Clearing flags on attachment: 175310

Committed r135339: <http://trac.webkit.org/changeset/135339>
Comment 9 WebKit Review Bot 2012-11-20 18:16:14 PST
All reviewed patches have been landed.  Closing bug.
Comment 10 Adam Barth 2012-11-20 23:14:56 PST
That patch didn't seem to have healed it.
Comment 11 Adam Barth 2012-11-21 02:59:50 PST
It actually made it slightly worse.  I suspect bug 102854 is the path to salvation here, but I need to look at the profile.
Comment 12 Adam Barth 2012-11-21 10:49:58 PST
As expected bug 102854 causes these functions to drop off the profile entirely.  I just need to fix the worker issue.

I'm realize we're not using the normal "revert and re-land approach"...  We should either finish bug 102854 soon to verify that it heals the bot or we should figure out what would be involved in backing all these changes out.
Comment 13 Adam Barth 2012-11-23 13:49:02 PST
Fascinating!  This bot is now healed:

http://build.chromium.org/f/chromium/perf/chromium-rel-win7-webkit/dromaeo_domcorequery/report.html?rev=169350&graph=dom_query_getElementsByTagName__not_in_document_&history=200

Here's what happened:

1) http://trac.webkit.org/changeset/135339 actually did fix the regression.  We didn't see the bot healed because http://trac.webkit.org/changeset/135338 introduced a new regression.

2) http://trac.webkit.org/changeset/135440 rolled out http://trac.webkit.org/changeset/135338, and we are now able to observe that the bot is indeed healed.