Closed Bug 1662102 (stencil-mvp) Opened 1 year ago Closed 9 months ago

[meta] Support off-thread JS parsing during Atoms-Zone GC

Categories

(Core :: JavaScript Engine, task, P1)

task

Tracking

()

RESOLVED FIXED
Tracking Status
firefox86 --- fixed
firefox87 --- fixed

People

(Reporter: tcampbell, Unassigned)

References

(Blocks 3 open bugs)

Details

(Keywords: meta)

With our current barrier setup, we do not allow off-thread JS parsing to occur while an incremental GC that includes the atoms-zone is running. This restriction works both ways (parse stalls GC; GC stalls parse).

This requires avoiding using a parseGlobal entirely and doing GC-alocation on main-thread. Both normal scripts and modules should be supported, but eval and friends do not run off-thread so we can avoid complex scope snapshots for now. The XDR support for CompilationStencil is also required for this milestone so that it does not require a parseGlobal.

Alias: stencil-mvp
Depends on: 1655768
Blocks: 1543776
Blocks: 1543806
Blocks: 1611437
Duplicate of this bug: 1592106
Depends on: 1659104
Depends on: 1662127
Depends on: 1662140
Depends on: 1662142
Depends on: 1205132
No longer depends on: 1655768
Depends on: 1662273
No longer depends on: 1205132
Depends on: 1660940
No longer blocks: 1543806
Depends on: 1663889
Depends on: 1663962
Depends on: 1664281
Depends on: 1664293
Depends on: 1664363
Depends on: 1665015
Depends on: 1666024
Depends on: 1666683
No longer depends on: 1666683
Depends on: 1667615
Depends on: 1667804
Depends on: 1668637
Depends on: 1671887
Depends on: 1671895
No longer depends on: 1671887
Depends on: 1671960
Depends on: 1672105
Depends on: 1674305
Depends on: 1674306
Depends on: 1674465
Depends on: 1674674
Depends on: 1674869
Depends on: 1677354
Depends on: 1681011
Depends on: 1681012
Depends on: 1686691
Depends on: 1683274

The Stencil-MVP pref is riding the trains for FF86 and we can close this now.

No major changes to perf numbers are expected or have happened, but we now are using Stencil format for content JS bytecode caching, and are performing GC allocation for parsing on main-thread, avoiding using the parser-global.

Remaining uses of legacy-XDR / off-thread-parse-global:

  • Decoding cache files off-thread will continue to allocate GC objects off thread to avoid some performance issues. This should be fixable long-term.
  • StartupCache / ScriptPreloader / XULPrototypeCache continue to use legacy-XDR format and must be upgraded

(And of course all the new things that build on top of Stencil)

Status: NEW → RESOLVED
Closed: 9 months ago
Resolution: --- → FIXED
Regressions: 1683253
Regressions: 1687140
No longer regressions: 1687140
No longer regressions: 1683253
You need to log in before you can comment on or make changes to this bug.