Imagine a Heap this is completely full after an EdenCollection. The next allocation could potentially walk every atom of every MarkedBlock that its MarkedAllocator has. To avoid this situation we should ignore MarkedBlocks that are "full enough" so we can avoid this linear cost sweep phase.
Created attachment 226449 [details] Patch
Created attachment 226458 [details] Patch
Comment on attachment 226458 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=226458&action=review r=me > Source/JavaScriptCore/heap/MarkedSpace.cpp:-317 > -#ifndef NDEBUG > - VerifyNewlyAllocated verifyFunctor; > - forEachBlock(verifyFunctor); > -#endif Why no verify?
(In reply to comment #3) > (From update of attachment 226458 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=226458&action=review > > r=me > > > Source/JavaScriptCore/heap/MarkedSpace.cpp:-317 > > -#ifndef NDEBUG > > - VerifyNewlyAllocated verifyFunctor; > > - forEachBlock(verifyFunctor); > > -#endif > > Why no verify? I can undo that one. In an older version of the patch I was using m_newlyAllocated but no longer.
Committed r165458: <http://trac.webkit.org/changeset/165458>
This commit may have caused the fast/workers/worker-gc.html test to begin crashing <https://bugs.webkit.org/show_bug.cgi?id=130135>