Make Zone GC state non-atomic by moving shared permanent things to their own zone
Categories
(Core :: JavaScript: GC, task, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox106 | --- | fixed |
People
(Reporter: jonco, Assigned: jonco)
References
Details
Attachments
(4 files)
Some GC things are permanent and shared between runtimes. They are allocated in the parent runtime's atoms zone and may be referred to by child runtimes. This means that any GC by child runtimes must be able to detect and ignore them.
One way this happens currently is by marking all these shared things black on initialisation and never collecting them. This helps cases where we check a GC thing's mark state. They are still part of the parent runtime's atoms zone though, and the state of this zone can change independently of child runtimes. This means that (at least) the zone state must be atomic to avoid races.
Instead of this, we can allocate these things into their own separate zone. This will not be collected until shutdown and so we won't get any races checking the state. The compiler can generate more efficient code for checking the state, and we can also merge most checks for shared things with existing zone state checks.
| Assignee | ||
Comment 1•3 years ago
|
||
| Assignee | ||
Comment 2•3 years ago
|
||
Depends on D155377
| Assignee | ||
Comment 3•3 years ago
|
||
Depends on D155378
| Assignee | ||
Comment 4•3 years ago
|
||
Depends on D155379
Updated•3 years ago
|
Comment 6•3 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/747154213937
https://hg.mozilla.org/mozilla-central/rev/73928903648a
https://hg.mozilla.org/mozilla-central/rev/1f7a816e0141
https://hg.mozilla.org/mozilla-central/rev/dcf78df2531b
Comment 7•3 years ago
|
||
== Change summary for alert #35236 (as of Mon, 29 Aug 2022 23:17:57 GMT) ==
Improvements:
| Ratio | Test | Platform | Options | Absolute values (old vs new) |
|---|---|---|---|---|
| 7% | dromaeo_dom | linux1804-64-shippable-qr | e10s fission stylo webrender | 2,708.04 -> 2,904.33 |
| 7% | dromaeo_dom | linux1804-64-shippable-qr | e10s fission stylo webrender | 2,712.22 -> 2,890.48 |
For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=35236
Description
•