[webkit-changes] [WebKit/WebKit] 25d6b1: [JSC] Mark Weak in parallel

Yusuke Suzuki noreply at github.com
Tue Apr 11 16:55:01 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 25d6b13a31b0ac57d35ccf5e540e35c60ab54608
      https://github.com/WebKit/WebKit/commit/25d6b13a31b0ac57d35ccf5e540e35c60ab54608
  Author: Yusuke Suzuki <ysuzuki at apple.com>
  Date:   2023-04-11 (Tue, 11 Apr 2023)

  Changed paths:
    M Source/JavaScriptCore/heap/Heap.cpp
    M Source/JavaScriptCore/heap/IsoCellSetInlines.h
    M Source/JavaScriptCore/heap/MarkedBlock.h
    M Source/JavaScriptCore/heap/MarkedSpace.cpp
    M Source/JavaScriptCore/heap/MarkedSpace.h
    M Source/JavaScriptCore/heap/MarkedSpaceInlines.h
    M Source/JavaScriptCore/heap/SubspaceInlines.h
    M Source/JavaScriptCore/heap/WeakBlock.h
    M Source/JavaScriptCore/heap/WeakSet.cpp
    M Source/JavaScriptCore/heap/WeakSet.h

  Log Message:
  -----------
  [JSC] Mark Weak in parallel
https://bugs.webkit.org/show_bug.cgi?id=255219
rdar://107824755

Reviewed by Justin Michaud.

This patch extends WeakImpl visiting to make it happen in parallel.
We define parallel task visiting WeakImpl with multiple threads, and make
marking constraint for that ConstraintParallelism::Parallel.
We also fixes WeakBlock size from 256 to 1024. As comment says, it was originally
1/16 of MarkedBlock size. But this was because MarkedBlock was 4KB. And after it
gets 16KB, still WeakBlock is not extended. 256 is too small since it only holds
9 elements of WeakImpl.

* Source/JavaScriptCore/heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
* Source/JavaScriptCore/heap/IsoCellSetInlines.h:
(JSC::IsoCellSet::forEachMarkedCellInParallel):
* Source/JavaScriptCore/heap/MarkedSpace.cpp:
(JSC::MarkedSpace::visitWeakSets): Deleted.
* Source/JavaScriptCore/heap/MarkedSpace.h:
* Source/JavaScriptCore/heap/MarkedSpaceInlines.h:
(JSC::MarkedSpace::forEachWeakInParallel):
* Source/JavaScriptCore/heap/SubspaceInlines.h:
(JSC::Subspace::forEachMarkedCellInParallel):
* Source/JavaScriptCore/heap/WeakSet.cpp:
* Source/JavaScriptCore/heap/WeakSet.h:
(JSC::WeakSet::head):
(JSC::WeakSet::forEachBlock):
(JSC::WeakSet::lastChanceToFinalize):
(JSC::WeakSet::reap):
(JSC::WeakSet::visit): Deleted.

Canonical link: https://commits.webkit.org/262849@main




More information about the webkit-changes mailing list