Closed Bug 1802087 Opened 1 year ago Closed 1 year ago

Remove heap writes during marking

Categories

(Core :: JavaScript: GC, task, P3)

task

Tracking

()

RESOLVED FIXED
109 Branch
Tracking Status
firefox109 --- fixed

People

(Reporter: jonco, Assigned: jonco)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

To enable parallel marking we need to remove any writes to the heap made as part of marking, as these would be data races. Fortunately there are only a couple of places where this happens.

Currently we discard JIT code for RegExpShared by clearing fields during
marking. The patch changes this to do this at the start of GC.

This is a slight pessimisation as it happens for all RegExpShared objects
including unreachable ones. I don't expect this to be noticable in practice.

This refactors the code to move the update into the GC.

Depends on D162820

Pushed by jcoppeard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e773f946fcf4
Part 1: Discard JIT code for RegExpShared objects at the start of GC r=jandem
https://hg.mozilla.org/integration/autoland/rev/e1251be93fcb
Part 2: Don't update null entries in the script GC things vector r=jandem
Status: NEW → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 109 Branch
Regressions: 1802308
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: