Closed Bug 1010169 Opened 9 years ago Closed 8 years ago

PJS GC: Remove the need for evacuating the PJS nursery on bailout

Categories

(Core :: JavaScript Engine, defect)

x86_64
Linux
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: lth, Unassigned)

References

Details

Followup to bug 933313; optimization.

The PJS generational GC (bug 933313) will evacuate the PJS nursery into the PJS tenured area, and then merge the PJS tenured area with the general heap, on every exit from the ForkJoin section, even when it is bailing out.

It is not necessary to evacuate and merge when the ForkJoin section is bailing out provided there are no references from the general heap into the PJS tenured area or PJS nursery.  The basic requirement for that is that there are no observable references from the PJS result array, nor from any stack or global variable, into the PJS tenured area or nursery.  Bug 993347 discusses that in some detail.

Note however that the result array must be cleared (if it can contain references) very quickly after bailout, not at the start of the next iteration as discussed in bug 993347, unless the fix for 993347 carefully makes stale pointers in a result array slice unobservable until a worker has had a chance to initialize the slice.
Blocks: PJS
Summary: PJS: Remove the need for evacuating the PJS nursery on bailout → PJS GC: Remove the need for evacuating the PJS nursery on bailout
Assignee: lhansen → nobody
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.