Closed
Bug 933382
Opened 11 years ago
Closed 11 years ago
GenerationalGC: Fix the all-slots post barrier
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla28
People
(Reporter: terrence, Assigned: terrence)
References
Details
Attachments
(1 file, 1 obsolete file)
1.07 KB,
patch
|
h4writer
:
review+
|
Details | Diff | Splinter Review |
Hannes noticed that the AllSlots post barrier is broken: it skips the barrier if uintptr_t(obj) > nursery->end(). This probably accounts for some random GGC failures.
Attachment #825435 -
Flags: review?(hv1989)
Comment 1•11 years ago
|
||
Comment on attachment 825435 [details] [diff] [review]
fix_allslots_barrier-v0.diff
Review of attachment 825435 [details] [diff] [review]:
-----------------------------------------------------------------
This is still wrong:
You told me this should be:
|if (!inNursery(obj)) { ool }|
That means:
> Register objreg = ToRegister(lir->object());
> masm.branchPtr(Assembler::Below, objreg, ImmWord(nursery.start()), ool->entry());
> masm.branchPtr(Assembler::Below, objreg, ImmWord(nursery.heapEnd()), ool->rejoin());
> + masm.jump(ool->entry());
> masm.bind(ool->rejoin());
or better:
> Register objreg = ToRegister(lir->object());
> masm.branchPtr(Assembler::Below, objreg, ImmWord(nursery.start()), ool->entry());
> - masm.branchPtr(Assembler::Below, objreg, ImmWord(nursery.heapEnd()), ool->rejoin());
> + masm.branchPtr(Assembler::AboveOrEqual, objreg, ImmWord(nursery.heapEnd()), ool->entry());
> masm.bind(ool->rejoin());
Attachment #825435 -
Flags: review?(hv1989)
Assignee | ||
Comment 2•11 years ago
|
||
Yeah, that was pretty dumb. Lets use your second suggestion.
Attachment #825435 -
Attachment is obsolete: true
Attachment #825554 -
Flags: review?(hv1989)
Updated•11 years ago
|
Attachment #825554 -
Flags: review?(hv1989) → review+
Assignee | ||
Comment 3•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
You need to log in
before you can comment on or make changes to this bug.
Description
•