Bug 201613

Summary: [JSC] Use metadata table to iterate specific bytecode metadata instead of propertyAccessInstructions vector
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: New BugsAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED FIXED    
Severity: Normal CC: ews-watchlist, keith_miller, mark.lam, msaboff, saam, tzagallo, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch mark.lam: review+

Description Yusuke Suzuki 2019-09-09 14:03:34 PDT
[JSC] Use metadata table to iterate specific bytecode metadata instead of propertyAccessInstructions vector
Comment 1 Yusuke Suzuki 2019-09-09 14:05:48 PDT
Created attachment 378407 [details]
Patch
Comment 2 Yusuke Suzuki 2019-09-09 14:14:19 PDT
<rdar://problem/55170668>
Comment 3 Mark Lam 2019-09-09 14:26:32 PDT
Comment on attachment 378407 [details]
Patch

I like it.  The code is cleaner now.  r=me
Comment 4 Yusuke Suzuki 2019-09-09 14:38:22 PDT
Committed r249668: <https://trac.webkit.org/changeset/249668>
Comment 5 Yusuke Suzuki 2019-09-09 22:10:23 PDT
This is causing RAMification regression, and this is a bit pathological.
The problem is that LuaJSFight's list related tests. These tests are getting more memory right now. It is because sizeof(UnlinkedCodeBlock) is changed from 256 to 240.

When calculating sizeClass, we are manually adding sizeof(UnlinkedCodeBlock) to size class (256 previously). This is old code, and interestingly, this 256 size class works really well.

But now, added size-class becomes 240. And this difference causes memory increase in LuaJSFight list related tests.

Possible solution is adding 256 to size-class list directly, but I'm not sure about whether we should do.
Comment 6 Yusuke Suzuki 2019-09-09 22:17:25 PDT
(In reply to Yusuke Suzuki from comment #5)
> This is causing RAMification regression, and this is a bit pathological.
> The problem is that LuaJSFight's list related tests. These tests are getting
> more memory right now. It is because sizeof(UnlinkedCodeBlock) is changed
> from 256 to 240.
> 
> When calculating sizeClass, we are manually adding sizeof(UnlinkedCodeBlock)
> to size class (256 previously). This is old code, and interestingly, this
> 256 size class works really well.
> 
> But now, added size-class becomes 240. And this difference causes memory
> increase in LuaJSFight list related tests.
> 
> Possible solution is adding 256 to size-class list directly, but I'm not
> sure about whether we should do.

https://bugs.webkit.org/show_bug.cgi?id=201631