Closed
Bug 1224050
Opened 9 years ago
Closed 9 years ago
Use stable hashing for InitialShapeTable
Categories
(Core :: JavaScript: GC, defect)
Core
JavaScript: GC
Tracking
()
RESOLVED
FIXED
mozilla45
People
(Reporter: terrence, Assigned: terrence)
References
Details
Attachments
(1 file)
12.21 KB,
patch
|
jonco
:
review+
|
Details | Diff | Splinter Review |
This is one of the ugly ones that doesn't show up with a compilation failure because it open codes the hashing of the TaggedProto. I have a patch lying about that didn't work before that I need to rebase. It may "just work" now.
Assignee | ||
Comment 1•9 years ago
|
||
Yup, appears to work now.
Assignee | ||
Comment 2•9 years ago
|
||
Comment 3•9 years ago
|
||
Comment on attachment 8686845 [details] [diff] [review]
stable_InitialShapeTable-v1.diff
Review of attachment 8686845 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/vm/Shape.cpp
@@ -1388,5 @@
> -/*
> - * This class is used to add a post barrier on the initialShapes set, as the key
> - * is calculated based on objects which may be moved by generational GC.
> - */
> -class InitialShapeSetRef : public BufferableRef
It's so good to get rid of all of this!
@@ +1459,5 @@
> return nullptr;
>
> Lookup lookup(clasp, protoRoot, nfixed, objectFlags);
> + if (!p.add(cx, table, lookup, InitialShapeEntry(ReadBarriered<Shape*>(shape),
> + ReadBarriered<TaggedProto>(protoRoot))))
I think we make the ReadBarriered constructor implicit, so can we just pass shape and protoRoot here?
::: js/src/vm/TaggedProto.cpp
@@ +48,5 @@
> + HashNumber hn;
> + if (!obj->zone()->getHashCode(obj, &hn))
> + oomUnsafe.crash("failed to get hash code for TaggedProto");
> + return hn;
> +}
It seems like hashCode() duplicates much of the logic in uniqueId(). Can we just call the latter and munge the result?
Attachment #8686845 -
Flags: review?(jcoppeard) → review+
Assignee | ||
Comment 4•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/40a37cb11607a03baa857eb41095956923676e5c
Bug 1224050 - Use stable hashing for the IntialShapesTable; r=jonco
Comment 5•9 years ago
|
||
A regression/improvement was reported on AWFY:
- slave: Mac OS X 10.10 32-bit (Mac Pro, shell)
- mode: Ion
Regression(s)/Improvement(s):
- octane: EarleyBoyer: -4.8% (regression)
Recorded range:
- http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=43ca206bb812&tochange=40a37cb11607
More details: http://arewefastyet.com/regressions/#/regression/1799694
Comment 6•9 years ago
|
||
bugherder |
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
Assignee | ||
Comment 7•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/9aa45a7563473b25a5e9041981b21d61545d707b
Backout 40a37cb11607 (Bug 1224050) for regressing the rest of the things.
Assignee | ||
Updated•9 years ago
|
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment 8•9 years ago
|
||
Confirmed fixed with backout
Comment 9•9 years ago
|
||
this caused a lot of talos regressions, mostly in startup:
http://alertmanager.allizom.org:8080/alerts.html?rev=02919b7d57d7f8206328f53ac0f7b2b9fe334c9b&showAll=1&testIndex=0&platIndex=0
keep that in mind when relanding!
Assignee | ||
Comment 10•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/676b6db552c894a6b2598285f5a1dd3ba5a0f201
Bug 1224050 - Use stable hashing for the IntialShapesTable; r=jonco
Assignee | ||
Comment 11•9 years ago
|
||
I was not able to reproduce any of the regressions locally, but I applied the same optimizations that worked for the ObjectGroupCompartment::NewTable, so I am hopeful that this will take care of the problem here too.
Comment 12•9 years ago
|
||
bugherder |
Status: REOPENED → RESOLVED
Closed: 9 years ago → 9 years ago
status-firefox48:
--- → fixed
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•