- 08 Apr, 2021 1 commit
-
-
Michael Lippautz authored
The only valid way to define a GCed type T is by inheriting from GarbageCollected<T>. Since this is prone to typos (see tests), add a simple check that covers most interesting use cases. The static assert covers A -> B -> GarbageCollected<C> The static assert does not cover A -> B -> C -> GarbageCollected<B> (In order to do so, we would need __direct_bases() support which is not yet available for C++.) Bug: pdfium:1670, chromium:1056170 Change-Id: I494de48992f8ba9a1f0f9daad60584d828717403 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2810415Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73854}
-
- 06 Apr, 2021 1 commit
-
-
Omer Katz authored
These are used by v8_wrapper/heap_test_utilities.* in Blink. See crrev.com/c/2787126 for usage. Bug: chromium:1056170 Change-Id: I329b1823f2ac21181a3536577ed72bee3d591347 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2786842 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73805}
-
- 17 Mar, 2021 4 commits
-
-
Michael Lippautz authored
Refactor SpacePolicy on a non-templated class to avoid the situation of having MakeGarbageCollectedTraitBase<T>::SpacePolicy<U> refer to different T and U which make it hard for the compiler to alias anything. Bug: chromium:1056170 Change-Id: I78eb0362d43403ad2712bcb65746eeb9f6ad44fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2769338Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73494}
-
Michael Lippautz authored
This is a reland of d76064df Original change's description: > cppgc: Rework GC info creation > > Previously, GCInfoTrait relied on the non-trivial constructor of a > static object for registering a new GCInfo object. The generated code > is required to be thread-safe which is achieved by introducing guard > variables in the compiler. > > The new version is similar to Blink in that it relies on zero > initialization of a trivially constructible atomic. > > Compared to guard variables that are created per GCInfo registration, > the atomic creates less bloat (~20bytes/type) and also results in a > better fast path. > > Minimum example: https://godbolt.org/z/qrdTf8 > > Bug: chromium:1056170 > Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750 > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73463} Bug: chromium:1056170 Change-Id: I01e60beabc1d279d352361657f408f113aac768e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767021 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73471}
-
Maya Lekova authored
This reverts commit d76064df. Reason for revert: Breaking MSAN - https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/37390/overview Original change's description: > cppgc: Rework GC info creation > > Previously, GCInfoTrait relied on the non-trivial constructor of a > static object for registering a new GCInfo object. The generated code > is required to be thread-safe which is achieved by introducing guard > variables in the compiler. > > The new version is similar to Blink in that it relies on zero > initialization of a trivially constructible atomic. > > Compared to guard variables that are created per GCInfo registration, > the atomic creates less bloat (~20bytes/type) and also results in a > better fast path. > > Minimum example: https://godbolt.org/z/qrdTf8 > > Bug: chromium:1056170 > Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750 > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73463} Bug: chromium:1056170 Change-Id: I71960103513d6db7789d752b70727d014c2e6406 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767020 Auto-Submit: Maya Lekova <mslekova@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73466}
-
Michael Lippautz authored
Previously, GCInfoTrait relied on the non-trivial constructor of a static object for registering a new GCInfo object. The generated code is required to be thread-safe which is achieved by introducing guard variables in the compiler. The new version is similar to Blink in that it relies on zero initialization of a trivially constructible atomic. Compared to guard variables that are created per GCInfo registration, the atomic creates less bloat (~20bytes/type) and also results in a better fast path. Minimum example: https://godbolt.org/z/qrdTf8 Bug: chromium:1056170 Change-Id: I95efbbf035b655d0440c9477f5391e310e2b71fa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2764750Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73463}
-
- 12 Mar, 2021 1 commit
-
-
Michael Lippautz authored
Actually apply the folding on allocation. Bug: chromium:1056170 Change-Id: Ief25fac49c5caff40579fd44249bba0ae82f9689 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2756536 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73377}
-
- 11 Mar, 2021 2 commits
-
-
Michael Lippautz authored
Adds GCInfo folding that delegates GCInfo requests to the parent-most object if finalizer semantics match. Folding is disabled for builds that want exact object names as those names are also managed through GCInfo objects. Bug: chromium:1056170 Change-Id: I783aad930587853741da533d0b9b56ba160d0596 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2748588 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73339}
-
Michael Lippautz authored
Resize() is not similar to realloc() in that it allocates a new object when passed a nullptr object. Avoid corner cases around Resize(nullptr, size) where size may be problematic if non-null by just requiring a valid object. The caller can perform the necesary nullptr check. Bug: chromium:1056170 Change-Id: Ic05972ae67c2968fc3eb002a6302b44e56b41ab4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752147Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73336}
-
- 09 Mar, 2021 1 commit
-
-
Michael Lippautz authored
Bug: chromium:1056170 Change-Id: I89dd887a75a475f998d950e86f35c7fe2af5d67f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2743887Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73307}
-
- 08 Mar, 2021 3 commits
-
-
Michael Lippautz authored
Resize() may be used to adjust additional trailing bytes of an object. It is up to the embedder to ensure correctness in case of shrinking. Bug: chromium:1056170 Change-Id: I954df6c7440b77275cd62e4b802e8f5d39c06f9d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739652 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#73277}
-
Omer Katz authored
This CL adds missing locks to the PersistentRegions for (Weak)CrossThreadPersistents. To make sure no locks are missed in the future, this CL also splits PersistentRegion and introduces CrossThreadPersistentRegion that checks whether a lock is taken whenever it is accessed. Bug: chromium:1056170 Change-Id: Iaaef4a28af0f02bcb896706e9abf1ee5ad2ee1e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737299 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73264}
-
Michael Lippautz authored
Add an explicit FreeUnreferencedObject() call that can be used to reclaim objects that are guaranteed to not be referenced anymore by the embedder. It is up to the embedder to ensure correctness. Change-Id: I7f2d86d9639e8b805f79a8fd0a346903f63171e5 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737301 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#73262}
-
- 04 Mar, 2021 1 commit
-
-
Michael Lippautz authored
Fixes an issue with tracing empty ephemeron values of mixin types. Bug: chromium:1056170 Change-Id: I0089df29943ba7670ec4bdfa5592a01b0ec6de04 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2732025Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73185}
-
- 02 Mar, 2021 1 commit
-
-
Michael Lippautz authored
Bug: chromium:1056170 Change-Id: Ib8df4e10aa3a459cc24ca8d89db1f39b53cc5966 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2727269 Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73142}
-
- 26 Feb, 2021 4 commits
-
-
Michael Lippautz authored
This is a reland of eb453679 Original change's description: > cppgc: Rework testing GC infrastructure > > Instead of moving the stand-alone logic to the base heap, allows > specific heaps to override their stand-alone GC behavior. This allows > CppHeap to reuse the unified heap bottlenecks and visitors for > testing. This works as long as any v8 references are empty as there is > no Isolate attached to the heap in this case. > > - Reverts parts of https://crrev.com/c/2716291 > - Relands parts of https://crrev.com/c/2718146 > > In addition, add tests covering v8::CppHeap and cppgc::Heap. > > Bug: chromium:1056170 > Change-Id: I47dc88c7f0e4961a1aadd60da9b05bff4dcfb27a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718612 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73077} Bug: chromium:1056170 Change-Id: I415c837a7cf275c636172485dc4101c237a7d76b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2723253 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73081}
-
Francis McCabe authored
This reverts commit eb453679. Reason for revert: Breaks MSAN: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/37053 Original change's description: > cppgc: Rework testing GC infrastructure > > Instead of moving the stand-alone logic to the base heap, allows > specific heaps to override their stand-alone GC behavior. This allows > CppHeap to reuse the unified heap bottlenecks and visitors for > testing. This works as long as any v8 references are empty as there is > no Isolate attached to the heap in this case. > > - Reverts parts of https://crrev.com/c/2716291 > - Relands parts of https://crrev.com/c/2718146 > > In addition, add tests covering v8::CppHeap and cppgc::Heap. > > Bug: chromium:1056170 > Change-Id: I47dc88c7f0e4961a1aadd60da9b05bff4dcfb27a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718612 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73077} Bug: chromium:1056170 Change-Id: Ieda44c07d08f837a6632f96b8db6d5bec87dd521 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2723216 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Francis McCabe <fgm@chromium.org> Cr-Commit-Position: refs/heads/master@{#73078}
-
Michael Lippautz authored
Instead of moving the stand-alone logic to the base heap, allows specific heaps to override their stand-alone GC behavior. This allows CppHeap to reuse the unified heap bottlenecks and visitors for testing. This works as long as any v8 references are empty as there is no Isolate attached to the heap in this case. - Reverts parts of https://crrev.com/c/2716291 - Relands parts of https://crrev.com/c/2718146 In addition, add tests covering v8::CppHeap and cppgc::Heap. Bug: chromium:1056170 Change-Id: I47dc88c7f0e4961a1aadd60da9b05bff4dcfb27a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718612 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73077}
-
Omer Katz authored
This was causing DevTools to crush whenever I took a heap snapshot. Bug: chromium:1056170 Change-Id: Ice7b3039c21a3f902f242299939e92ba0e393c9f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2720307 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73065}
-
- 25 Feb, 2021 1 commit
-
-
Omer Katz authored
This CL adds WasConservativeGC to HeapState which reports whether the last GC was finalized conservatively. The state is updated at the end of marking atomic pause. Currently the library integration in Blink ignores the stack state when scheduling a forced GC for testing. That means that we always schedule another GC after a forced GC. This causes a crash in web_tests which assume no GC is happening between forced GCs if the thread is not idle and no new allocations happen. Usage CL: https://crrev.com/c/2720201 Drive by: Fix stack state for MarkingVerifier in CppHeap. Bug: chromium:1056170 Change-Id: I6ad23ed7c1a53fae96425b968bc4b3eb18ce80b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2720279 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73064}
-
- 24 Feb, 2021 5 commits
-
-
Zhi An Ng authored
This reverts commit ea818f07. Reason for revert: Test failure in Linux64 UBSan https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/15251/overview Original change's description: > cppgc: Fix testing APIs that enable garbage collection > > The APIs require that the CppHeap is moved into a permanently detached > state that moves the heap out of a no-gc scope. > > Bug: chromium:1056170 > Change-Id: I1fc08451b3fdfaa4cfe58e6a1ddbe5dbed7efe5c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718146 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73025} Bug: chromium:1056170 Change-Id: Id00cb18274cbe7d255e7e95bd9e8e4dbc4b0c6e7 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718658 Auto-Submit: Zhi An Ng <zhin@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Francis McCabe <fgm@chromium.org> Cr-Commit-Position: refs/heads/master@{#73029}
-
Michael Lippautz authored
The APIs require that the CppHeap is moved into a permanently detached state that moves the heap out of a no-gc scope. Bug: chromium:1056170 Change-Id: I1fc08451b3fdfaa4cfe58e6a1ddbe5dbed7efe5c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718146 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73025}
-
Omer Katz authored
Two threads might get the same PersistentNode because the BasicCrossThreadPersistent ctor wasn't taking a lock. Then if one thread frees the node and the other initalizes it or updates its owner, we get some random object in our free list of PersistentNodes. I debug a crash in Assign(Unsafe) and Clear where the PersistentNode seemed to be allocated on stack. Empirically, adding this guard resolved it. I can't confirm in the code that the scenario above is what was happening. Drive-by: adding a few DCHECKs. Bug: chromium:1056170 Change-Id: I37d8ed5bb942a124c98d7524b7f04fe8ccb2aefd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2718144 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73023}
-
Michael Lippautz authored
Bug: chromium:1056170 Change-Id: Ib2b2788c7d59f873583e26a0716bacbf16766c93 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716291Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73010}
-
Omer Katz authored
Assert that the lock is help whenever AssignUnsafe is called. LazyMutex::AssertHeld resolves to a DCHECK so this should not regress production performance (other than the call itself that might not be inlined). Bug: chromium:1056170 Change-Id: Ic2005d180e6960c24dff7743aa3e0d5e57a63d80 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2716286Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73000}
-
- 17 Feb, 2021 2 commits
-
-
Omer Katz authored
Process global accessors for total physical size and used size are needed for blink. These are implemented via an allocation observer that atomically updates static counters. The public api only provides getters for the counters. An internal class is in charge of updating the counters as needed. A similar split is also applied to IsAnyIncrementalOrConcurrentMarking(). Drive-by: ProcessHeap is merged into cppgc::internal::WriteBarrier. Bug: chromium:1056170 Change-Id: Iaedebd1ac9d49238ce6bdd52ffa5d1ef4d28203d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2695394 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72832}
-
Michael Lippautz authored
Previously, ephemerons without a base_object_payload have been filtered. base_object_payload is currently used to differentiate between GarbageCollected and just traceable objects, so we need to pass on the empty descriptor. Bug: chromium:1056170 Change-Id: I9cba53295779ec74dce2822b7bf83f477bc3241f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2700039Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72820}
-
- 16 Feb, 2021 1 commit
-
-
Omer Katz authored
On-heap hash maps in blink are limited to Member types and non-traceable types. The only exception to that is TraceWrapperV8Reference. Thus ephemerons can have non-gced traceable values. This values should not be pushed to the marking worklist since we expect everything in the worklist to be marked and not in construction (but these values don't have an object header). Instead, when getting a non-gced value we should immediately trace it. This is only relevant to ephemerons. Any other case would go through Trace(const T&) that dispatches to the TraceTrait. Blink has 1 use case of HeahHashMap from WeakMember<ScriptWrappable> to TraceWrapperV8Reference. Bug: chromium:1056170 Change-Id: Ia8f341d6bb1fc8fd3655b2be66b7814896549d1e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2696648Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72763}
-
- 12 Feb, 2021 1 commit
-
-
Michael Lippautz authored
Ephemerons are based around WeakMember which may just be null at the time the pair is considered for liveness. Bail out of marking for null keys, as they write barrier would anyways make the value strong when marking the key. Bug: chromium:1056170 Change-Id: If8775a370824b88fc67fa479a0c0893985fbf5f4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2692571Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72714}
-
- 11 Feb, 2021 3 commits
-
-
Omer Katz authored
Bug: chromium:1056170 Change-Id: I6fb5278dd1ef14faac13602cd28286d0e0d29054 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689198 Commit-Queue: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72672}
-
Michael Lippautz authored
cppgc/testing.h is already part of a testonly gn target which only can be included from other test targets. This prevents any production target to depend on cppgc/testing.h. Bug: chromium:1056170 Change-Id: I51f6c47ffac2a05c8c63d7b4663c456a64fe75b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689196Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72670}
-
Omer Katz authored
HeapBase::CollectStatistics returns a HeapStatistics struct that can be used by blink to populate a memory dump. Bug: chromium:1056170 Change-Id: Ic147a02ba6b4aa77bf92cfca067da70b7e1af55b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689181 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72660}
-
- 10 Feb, 2021 1 commit
-
-
Michael Lippautz authored
Model cppgc::InitializeProcess()/cppgc::ShutdownProcess() similar to V8's InitializePlatform()/ShutdownPlatform() in that we allow the pair to be called multiple times. GCInfoTable will not be freed on ShutdownProcess though as the current global design uses static indices to retrieve per-type metadata. Drive-by: Remove stale ShutdownProcess() call. Change-Id: Ia9b50325a964e85a72f3ef218e72bc386b69be51 Bug: chromium:1176416, chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2685171Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72630}
-
- 09 Feb, 2021 1 commit
-
-
Michael Lippautz authored
Embedders may use cppgc (or v8::CppHeap) earlier than V8's Isolate and platform are initialized. Require explicit initialization of cppgc to avoid recurring init calls with potentially conflicting parameters. Bug: chromium:1056170 Change-Id: I613452954b322c9a5bf074eefd25107b4579958c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2682648Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72573}
-
- 08 Feb, 2021 1 commit
-
-
Michael Lippautz authored
This change avoid dispatching a write barrier during the atomic pause. The dispatch can generally be triggered through pre-finalizers. In future, further checks may be added to avoid mis-use of pre-finalizers. Bug: chromium:1056170, chromium:1175560 Change-Id: I119e18372633b2375f60e17b4c881f68bb20bf66 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679685Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72560}
-
- 05 Feb, 2021 1 commit
-
-
Michael Lippautz authored
Some types of supported low-level write barrier only requires passing a slot, which may not be even part of a heap object but stack. This complicates the situation, as even with caged heap, there's no way to distinguish a stack and heap slot. Solve this by passing an optional callback that can lazy be used to get the heap. This can be used by the embedder to retrieve the heap from e.g. TLS if needed. This aligns the barrier with Oilpan in Blink. Bug: chromium:1056170 Change-Id: I1e5d022ab17a2614a67b6ef39ed12691bcbd0ac6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2675924Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72550}
-
- 03 Feb, 2021 1 commit
-
-
Michael Lippautz authored
Adds testing API that can only be used after enabling it on a heap. The call that enables testing is only provided via v8_for_testing or cppgc_for_testing build targets which protects against misusing from production code. Change-Id: I24a8f5543a2bb479481384e2c555d231383e5d12 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2667513Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72503}
-
- 02 Feb, 2021 1 commit
-
-
Michael Lippautz authored
- Allow downcasting construciton and assignment; - Add WeakCrossThreadPersistent::Lock() that safely retrieves a strong handle for a weak reference; Bug: chromium:1056170 Change-Id: I5f8d85a87c9955506dd87723ffb4c80d66770c04 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2663160 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72468}
-
- 29 Jan, 2021 1 commit
-
-
Michael Lippautz authored
Adds getters for GC phases to be used by advanced embedders to ensure and check consistency conditions as needed. Bug: chromium:1056170 Change-Id: Ia0b219f838bf31f0edbfe40585b95bb5eafa734d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2658328Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72430}
-
- 28 Jan, 2021 1 commit
-
-
Michael Lippautz authored
Allows for prohibiting GCs and will result in a crash in case a GC finalization event is triggered. Complements NoGarbageCollectionScope which ignores GC finalization events. Bug: chromium:1056170 Change-Id: Ie2a72a8675462b24692225af17c8f284318337ba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2656260Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72413}
-