- 30 Aug, 2022 1 commit
-
-
Michael Lippautz authored
So far Oilpan garbage collection was only ever triggered via growing strategies in either V8 or stand-alone heap growing. This CL implements a fallback for GC on allocation. - Stand-alone implementation will defer to GCInvoker which is aware of stack support. - CppHeap implementation will just trigger a full V8 GC. Bug: chromium:1352649 Change-Id: If92f705b4e272290ca7022864fd7b90f0fcb809e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3865148Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82844}
-
- 26 Aug, 2022 1 commit
-
-
Shu-yu Guo authored
Currently the ability to create shared isolates is partially exposed to API. Instead of fully exposing it, this CL makes shared isolate and shared heap handling transparent to the embedder. If a flag that requires the shared heap is true (currently --shared-string-table and --harmony-struct), the first isolate created in the process will create and attach to a process-wide shared isolate. Subsequent isolates will attach to that shared isolate. When that first isolate is deleted, the shared isolate is also deleted. Bug: v8:12547 Change-Id: Idaf2947bc354066c44f2d10243e10162b1b7e4d6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3848825Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Owners-Override: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#82756}
-
- 25 Aug, 2022 3 commits
-
-
Feng Yu authored
This is a reland of commit 3615ae69. Original change's description: > [test] Migrate cctest/test-global-handles to unittests/ > > Bug: v8:12781 > Change-Id: If7681564f3e0c087e3347557a3f9169625b51607 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3817621 > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82633} Bug: v8:12781 Change-Id: I776ab176733722fd8853deaabec93e0d44274d9c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3855979Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#82719}
-
Feng Yu authored
This is a reland of commit d83346be Original change's description: > [test] Migrate cctest/test-weakmaps to unittests/ > > Bug: v8:12781 > Change-Id: Ief6bd7ee0ff2876e19970b2fb6af4f3208ec7f4e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3815486 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82699} Bug: v8:12781 Change-Id: I9f74c32b924433dea67f62e26a336ef7263282e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3856096 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82717}
-
Leszek Swirski authored
This reverts commit d83346be. Reason for revert: Seems to be breaking TSAN bot (https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20stress-incremental-marking/8867/overview) Original change's description: > [test] Migrate cctest/test-weakmaps to unittests/ > > Bug: v8:12781 > Change-Id: Ief6bd7ee0ff2876e19970b2fb6af4f3208ec7f4e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3815486 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82699} Bug: v8:12781 Change-Id: Ia20078e9f40d0e2257cf0b953ddd2e72594c4085 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3855938 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#82713}
-
- 24 Aug, 2022 4 commits
-
-
Feng Yu authored
Bug: v8:12781 Change-Id: Ief6bd7ee0ff2876e19970b2fb6af4f3208ec7f4e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3815486 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#82699}
-
Leon Bettscheider authored
This CL adds a soft limit (via AllocationObserver) to run incremental marking for MinorMC. Once the soft limit is triggered, roots are marked. This a stepping stone for concurrent marking (YoungGenerationConcurrentMarkingVisitor, go/YGCMV) integration. Bug: v8:13012 Change-Id: I5bc9aeb80511159561845deb494023ade3fb7365 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3824339Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Leon Bettscheider <bettscheider@google.com> Cr-Commit-Position: refs/heads/main@{#82695}
-
Dominik Inführ authored
Concurrent markers could add work into the worklist before the CHECK. Bug: v8:12775, v8:13223 Change-Id: I8ac252b0fec8e5acbcfec56dad04830e596c709d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3854496 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82690}
-
Michael Lippautz authored
Users should rely on CppHeap which is the only supported way of using v8::TracedReference in going forward. Bug: v8:13207 Change-Id: Idd03f458167c74b06f285bb568e5c77ad46003fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3849037Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/main@{#82681}
-
- 23 Aug, 2022 3 commits
-
-
Dominik Inführ authored
IsRunning() and IsMarking() are now equivalent. So IsRunning() can be removed in favor of IsMarking(). IsComplete() is also renamed to IsMarkingComplete(). Bug: v8:12775 Change-Id: Ife88be4d674af055590ba5178ec1e410f8fa89d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3849833Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#82665}
-
Michael Lippautz authored
- Swap() was not necessary as all uses merely required Merge() - Remove unused empty Local ctor - Use refrence for backref as it's always supposed to be non-null Bug: v8:13193 Change-Id: Ide0a0de15185a67d028890371ae30528fd55a058 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3846863Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82648}
-
Nico Hartmann authored
This reverts commit 3615ae69. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20stress-incremental-marking/8836/overview Original change's description: > [test] Migrate cctest/test-global-handles to unittests/ > > Bug: v8:12781 > Change-Id: If7681564f3e0c087e3347557a3f9169625b51607 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3817621 > Reviewed-by: Camillo Bruni <cbruni@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82633} Bug: v8:12781 Change-Id: Ia0e714028e1554b46421d455d86759b61883fd8f No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3845712 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Nico Hartmann <nicohartmann@chromium.org> Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#82638}
-
- 22 Aug, 2022 3 commits
-
-
Michael Lippautz authored
Per-context mode marking segregates worklists per context. Upon doing so, Worklist::Local's move ctor was invoked which cleared the back pointer to worklist. This break switching to that context which happens in rare secnarios. Rework Local marking worklists avoiding the move ctor which is also removed. Bug: chromium:1355545 Change-Id: If0e8c7f08df564b2a1e27e4a3fc5a6a40e46ee46 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3845630 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#82636}
-
Feng Yu authored
Bug: v8:12781 Change-Id: If7681564f3e0c087e3347557a3f9169625b51607 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3817621Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#82633}
-
Omer Katz authored
Bug: v8:13185 Change-Id: Id145e76ad52469d9aa8a12c9172851b086421afd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3840217 Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82608}
-
- 19 Aug, 2022 1 commit
-
-
Anton Bikineev authored
NormalPageMemoryRegion is a span of 10 pages, all of which must belong to the same space. This requirement imposes a fragmentation issue for virtual space, which is not ideal for the current 2GB cage configuration. The CL fixes this by mixing pages of different spaces inside the same NormalPageMemoryRegion. With cage it's actually not necessary anymore to have NormalPageMemoryRegion, but we keep it to allow the code to be uniform for cage/non-cage configurations. There is no type confusion across spaces, since pages (even empty) are never shared between spaces. In addition, the shared cage puts an additional memory constraint on the GC. So, there is no security benefit in having NormalPageMemoryRegion assigned to a single space. Savings in reserved address space: cnn:2021: 14% facebook_infinite_scroll:2018: 23% Bug: chromium:1325007, chromium:1352649 Change-Id: I7b49032d581dd56feb8633734a1f37803e9526c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3840749Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#82584}
-
- 18 Aug, 2022 3 commits
-
-
Michael Lippautz authored
Bug: v8:13141 Change-Id: I05e905a40a572c7f85f60629b2303cd73ae06a70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3838731 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#82564}
-
Michael Lippautz authored
Traced nodes were allocated black, even outside of GCs. Nodes would always survive one GC, while the objects pointed to could die. This CL removes black allocation and relies on proper write barriers (that are anyways in place) to mark the nodes and their objects. This also means that marked nodes should always point to live objects which is now verified in the atomic pause. Bug: v8:13141 Change-Id: Ie5cdc92d8fe5f57865d02b71d3fae9425ae532fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3820070 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#82559}
-
Dominik Inführ authored
Introducing IncrementalMarking::AdvanceForTesting as last bottleneck for driving incremental marking in addition to AdvanceFromTask and AdvanceOnAllocation. Now that we have those 3 bottlenecks, Step() and AdvanceWithDeadline() can become private methods in IncrementalMarking. We also don't need the StepResult return value in Step() anymore, which allows us to remove CombineStepResult. Bug: v8:12775 Change-Id: I702714439ef7ea4b9abf2156387503d4d00a7a48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3823131Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#82552}
-
- 17 Aug, 2022 1 commit
-
-
Michael Lippautz authored
- Move InnerPointerToCodeCache to using internal callbacks. - Refactor internal and external callbacks to use a unified interface. Bug: v8:13184 Change-Id: If0006d324b0433f5d6bbf00b6d0fc1a2589227bc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3834583Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82515}
-
- 16 Aug, 2022 2 commits
-
-
Michael Lippautz authored
This is a reland of commit a19316d9 - Revert malloc_usable_size() changes temporarily to land them in isolation. - Add cosmetics from https://crrev.com/c/3827876 Original change's description: > [heap] Rework Worklist base type > > Worklist uses a singly-linked list of segments to hold entries. > Segment size was based on a compile-time constant but already stored > in the segment itself. > > Rework the segments to query `malloc_usable_size()` on allocation and > adjust the capacity properly. For PartitionAlloc, it turns out that > there's ~20% more capacity available for the 64-element segments. > > This slows down actual allocation of the segments with the upside of > improving utilization and requiring 20% less segments. > > Change-Id: Ib8595c3fb9fb75b02e4022f6c525bb59a2df7ab7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3826047 > Commit-Queue: Anton Bikineev <bikineev@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82432} Change-Id: Ic8c5257cfe3c347b11eea5c513ca7f62e09f637f Bug: v8:13193 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3829475Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82493}
-
Omer Katz authored
Make sure there is no background GC when setting flags. Bug: v8:12612, v8:13185 Change-Id: I0a2d4796abe265defa00d86f826003eb048e5bf1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3829482 Auto-Submit: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82474}
-
- 15 Aug, 2022 1 commit
-
-
Feng Yu authored
Bug: v8:12781 Change-Id: I759024fb18ee596ecb678e5b70c95235ea91e520 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3827126Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/main@{#82464}
-
- 12 Aug, 2022 3 commits
-
-
Nico Hartmann authored
This reverts commit a19316d9. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/22670/overview Original change's description: > [heap] Rework Worklist base type > > Worklist uses a singly-linked list of segments to hold entries. > Segment size was based on a compile-time constant but already stored > in the segment itself. > > Rework the segments to query `malloc_usable_size()` on allocation and > adjust the capacity properly. For PartitionAlloc, it turns out that > there's ~20% more capacity available for the 64-element segments. > > This slows down actual allocation of the segments with the upside of > improving utilization and requiring 20% less segments. > > Change-Id: Ib8595c3fb9fb75b02e4022f6c525bb59a2df7ab7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3826047 > Commit-Queue: Anton Bikineev <bikineev@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82432} Change-Id: I14994e11ff5ffaba70b93d977d40dd2f6e9e5d35 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3829474 Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Nico Hartmann <nicohartmann@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#82438}
-
Omer Katz authored
The existing version for paged spaces simply reset the freelist, which doesn't work for tests that require actual objects in the space. The version for new space also doesn't work because it assumes everything after top is free space. Fill the space with FixedArray by iterating over the freelist and creating an object in place of each freelist entry. This method actually fills the space, so that we can also use it to force page promotion. Bug: v8:12612 Change-Id: Ie0d73e846bbf688ea52030be29e0587b2f37ed4e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3823135Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82437}
-
Michael Lippautz authored
Worklist uses a singly-linked list of segments to hold entries. Segment size was based on a compile-time constant but already stored in the segment itself. Rework the segments to query `malloc_usable_size()` on allocation and adjust the capacity properly. For PartitionAlloc, it turns out that there's ~20% more capacity available for the 64-element segments. This slows down actual allocation of the segments with the upside of improving utilization and requiring 20% less segments. Change-Id: Ib8595c3fb9fb75b02e4022f6c525bb59a2df7ab7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3826047 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#82432}
-
- 10 Aug, 2022 3 commits
-
-
Shu-yu Guo authored
Bug: v8:11708 Change-Id: Iac70ab6701e691b2975856be69892daadd814f70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3820913Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#82366}
-
Michael Lippautz authored
This is a reland of commit 6953b555 The reland fixes tests that retrieved the stack start from a non-inlined frame's fp. This does not work in certain configurations as the resulting marker is too low to consider the first local variables in subsequent calls. The fix uses an inline frame address for the tests to get an upper bound of stack addresses to consider. Original change's description: > [handles] Remove precise on-stack representation of global handles > > Since https://crrev.com/c/3806439 on-stack traced handles are marked > conservatively when being used in combination with CppHeap. > > This change removes the precise on-stack representation of the > internal traced nodes as they nodes would anyways be marked > conservatively. The effects are: > - cheaper representation (just a single node space); > - uniform handling: no checks to distinguish on-stack vs on-heap; > - no brittleness around cleaning on-stack handles when the event loop > is empty; > > Change-Id: Id859623bfed77a66bdd064ea8065536264515eae > Bug: v8:13141 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3812039 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82306} Bug: v8:13141 Change-Id: I53ece36220e99d02be6df18f83c18450e5d5037b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3820585Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82342}
-
Omer Katz authored
This CL includes: 1) Using 1 full GC instead of 2 young GCs to force object promotion. 2) A couple of needed bailouts. 3) Using manual evacuation candidates in old space to ensure an object is evacuted (moved to a different address) instead of relying on Scavenger. And some other minor tweaks Bug: v8:12612 Change-Id: Idfd925ccdf30215998ab6e7cc632ce750fa2077a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3816661Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82327}
-
- 09 Aug, 2022 4 commits
-
-
Michael Lippautz authored
This reverts commit 6953b555. Reason for revert: Failing on CI: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20full%20debug/22876/overview Original change's description: > [handles] Remove precise on-stack representation of global handles > > Since https://crrev.com/c/3806439 on-stack traced handles are marked > conservatively when being used in combination with CppHeap. > > This change removes the precise on-stack representation of the > internal traced nodes as they nodes would anyways be marked > conservatively. The effects are: > - cheaper representation (just a single node space); > - uniform handling: no checks to distinguish on-stack vs on-heap; > - no brittleness around cleaning on-stack handles when the event loop > is empty; > > Change-Id: Id859623bfed77a66bdd064ea8065536264515eae > Bug: v8:13141 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3812039 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#82306} Bug: v8:13141 Change-Id: I5ebb2ed9eeec1394c2dd48504e91f6ff789b0711 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3820584 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#82313}
-
Michael Lippautz authored
Since https://crrev.com/c/3806439 on-stack traced handles are marked conservatively when being used in combination with CppHeap. This change removes the precise on-stack representation of the internal traced nodes as they nodes would anyways be marked conservatively. The effects are: - cheaper representation (just a single node space); - uniform handling: no checks to distinguish on-stack vs on-heap; - no brittleness around cleaning on-stack handles when the event loop is empty; Change-Id: Id859623bfed77a66bdd064ea8065536264515eae Bug: v8:13141 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3812039Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82306}
-
Michael Lippautz authored
Splitting off cosmetics and unrelated test refactorings from a larger CL reworking traced global handles. Bug: v8:13141 Change-Id: I675cdbd4898346ab55b0db65d53e992f2eb95744 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3816671 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#82295}
-
Dominik Inführ authored
StepOrigin is enough to infer the right completion action: Either finalization by task (for StepOrigin::kTask) or stack guard (for StepOrigin::kV8). Only tests with StepOrigin::kV8 were violating this but they also just pass when enabling the stack guard. Bug: v8:12775 Change-Id: I5df50198d8e3612ee97142f84bd497820a5cec78 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3816664Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#82294}
-
- 04 Aug, 2022 1 commit
-
-
Michael Lippautz authored
v8::TracedReference is supposed to be used from objects allocated on CppHeap. Such objects can be in construction during garbage collection, meaning that they are unable to invoke Trace(v8::TraceReference) as they have not been properly set up. It is thus necessary to use conservative tracing to find v8::TracedReference (backed by TracedNode in GlobalHandle) in in-construction objects. Change-Id: I5b4ac6e7805ff7ded33f63a405db65ea08d809ad Bug: v8:13141, chromium:1322114 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3806439 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#82188}
-
- 01 Aug, 2022 1 commit
-
-
Michael Lippautz authored
Introduce RootVisitor and related class hierarchy to just handle roots. This avoids the awkard definitions for roots visiation in all the cases they are not needed. Change-Id: Ib0912e4bf543db2ecf68caead6929c68d6afdda6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3782794Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#82107}
-
- 27 Jul, 2022 1 commit
-
-
Nikolaos Papaspyrou authored
This CL implements MemoryAllocator::LookupChunkContainingAddress, which will be used for conservative stack scanning. The method determines whether an address that may be an inner pointer is contained in some allocated (normal or large) page. To achieve this, the CL introduces a page database in the memory allocator. Bug: v8:12851 Change-Id: I8b719a5f1b6e6b374ccf0666c91c2341c5f9856a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3784986Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Cr-Commit-Position: refs/heads/main@{#82004}
-
- 26 Jul, 2022 1 commit
-
-
Nikolaos Papaspyrou authored
This CL refactors the mechanism for testing the implementation of inner pointer resolution using the marking bitmap. It allows for more than one page, where objects can be allocated. It also keeps a list of allocated objects that are automatically tested. Bug: v8:12851 Change-Id: I470dc1154aca1ebc3d8526872717747829f83396 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3784605Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Cr-Commit-Position: refs/heads/main@{#81952}
-
- 19 Jul, 2022 3 commits
-
-
Michael Lippautz authored
We will provide a replacement for raw pointers in future which should only be used by backing stores. Any other callsite must go through Trace(BasicMember<>). Bug: v8:13089 Change-Id: Ibdae439b44ad94bd7af2532855be941c5334db99 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3772328 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81833}
-
Michael Lippautz authored
Thread through compressed pointer into write barrier to allow to delay compression after checking whether a write barrier is actually needed. Change-Id: If7e6cbb69a57cc9aeeb551c11f685bace4e56c4c Bug: chromium:1325007 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3769826 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81816}
-
Nikolaos Papaspyrou authored
This CL fixes a bug in the units of the reported metrics for V8.GC.Cycle.MainThread.Full.Incremental.Mark (ms instead of us). It also reports incremental marking/sweeping metrics (both for the unified heap and the C++ managed heap) only when incremental marking/sweeping were used; otherwise, no zero values are reported. Bug: chromium:1154636 Bug: chromium:1343507 Change-Id: Ibc0103ea62fa0eeb5f7184280c8514e99a5c21a3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3768502Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81803}
-