- 07 Dec, 2021 1 commit
-
-
Michael Lippautz authored
Checks whether a Persistent is used from the creation thread on slow path allocations. In practice, these currently happen every 256 Persistent allocations. This is a best effort check that may help to flush out issues that are missed with DCHECK builds. Bug: chromium:1276570 Change-Id: Ia868ca436341b1b5ef427d5b3ec04926c1394e41 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3318658 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#78276}
-
- 06 Dec, 2021 1 commit
-
-
Michael Lippautz authored
This CL reverts two diagnosing CLs that introduced same-thread CHECKS, recovering all introduced performance regressions. We will try to add less performance-sensitive checks again in a follow up. This reverts commit 0c2bbfd5. This reverts commit 6643c059. Bug: chromium:1253650, chromium:1243257, chromium:1274201 Change-Id: I96c41c39c4f58b062574fa11c4a2d76ad030bcf7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3315437 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#78245}
-
- 30 Nov, 2021 2 commits
-
-
Michael Lippautz authored
This is a reland of 4997ce58 Original change's description: > cppgc: Add targeted CHECK for diagnosing Peristent issue > > The added CHECK aims at finding problems where Peristent is used off > the owning thread. > > Bug: chromium:1253650, chromium:1243257 > Change-Id: Ia0cbc6005aba38c0d98197ed18c3b40dd2dc33fd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306972 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78137} Bug: chromium:1253650, chromium:1243257 Change-Id: I9ef72d3f649c1a4504417c4cd7728e5000675405 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306487Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78146}
-
Adam Klein authored
This reverts commit 4997ce58. Reason for revert: CHECK triggers on content_browsertests, blocking V8 roll https://cr-buildbucket.appspot.com/build/8829191878491185313 Original change's description: > cppgc: Add targeted CHECK for diagnosing Peristent issue > > The added CHECK aims at finding problems where Peristent is used off > the owning thread. > > Bug: chromium:1253650, chromium:1243257 > Change-Id: Ia0cbc6005aba38c0d98197ed18c3b40dd2dc33fd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306972 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78137} Bug: chromium:1253650, chromium:1243257 Change-Id: I6b5c3d3ac0a01e1e3de31a10d5903ea26cf5ae9a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3308373 Auto-Submit: Adam Klein <adamk@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/main@{#78142}
-
- 29 Nov, 2021 1 commit
-
-
Michael Lippautz authored
The added CHECK aims at finding problems where Peristent is used off the owning thread. Bug: chromium:1253650, chromium:1243257 Change-Id: Ia0cbc6005aba38c0d98197ed18c3b40dd2dc33fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306972 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#78137}
-
- 26 Oct, 2021 1 commit
-
-
Michael Lippautz authored
v8_enable_v8_checks has very little coverage outside of V8 itself. Move pointer verification checks behind DEBUG so that they fire in regular debug or dcheck_always_on builds. Change-Id: Ib2803240dd996f4223e403d20e927aff2955afbc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3242006Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#77534}
-
- 25 Oct, 2021 1 commit
-
-
Michael Lippautz authored
Persistent node slots are dynamically allocated and their allocation may fail. Delegate to the proper OOM handler in this case. Bug: chromium:1243257 Change-Id: I985f5b0c940f7ac4996f3f3243123a07119005b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3240786Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#77523}
-
- 30 Sep, 2021 1 commit
-
-
Omer Katz authored
Bug: chromium:1056170 Change-Id: I355187177d062bf7117bcbd402821f2b9dd739de Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3194267 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#77163}
-
- 21 Jul, 2021 1 commit
-
-
Michael Lippautz authored
Allow CrossThreadPersistent and its weak form to access ASAN poisoned memory from the GC entry points. In general, payloads of to-be-finalized objects are poisoned until the finalizer actually runs to avoid accidentally touching that payload. In the case of cross-thread handles, these may need to be cleared by a different thread before the finalizer actually runs. In order to clear those references, the slot needs to be unpoisoned. This is issue is ASAN-only and does not affect production or other debug builds. Bug: chromium:1230599, chromium:1056170 Change-Id: If4d0808953047319b02653821abbb5c638084dc5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3040845 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#75846}
-
- 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 1 commit
-
-
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}
-
- 24 Feb, 2021 2 commits
-
-
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}
-
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}
-
- 19 Jan, 2021 1 commit
-
-
Michael Lippautz authored
Termination GCs are used to destroy remaining C++ object on the managed heap to free potential off-heap memory. This is important for gracefully shutting down workers. Drive-by: Add guard prohibiting recursive sweeping calls on the mutator thread. Bug: chromium:1056170 Change-Id: I02ea3b632d38f5beab18cc8f077cf717ed877909 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2631504 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@{#72155}
-
- 19 Oct, 2020 1 commit
-
-
Michael Lippautz authored
Change-Id: Ie0b3a41e4248fb831d76ac47417cd8cb3a1e23f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2482823 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@{#70596}
-
- 09 Oct, 2020 1 commit
-
-
Michael Lippautz authored
Adds a cross-thread reference for strongly and weakly retaining objects on a thread other than the thread that owns the object. The intended use of the reference is by setting it up on the originating thread, holding the object alive from another thread, and ultimately accessing the object again on the originating thread. The reference has known caveats: - It's unsafe to use when the heap may terminate; - It's unsafe to transitively reach through the graph because of compaction; Change-Id: I84fbdde69a099eb54af5b93c34e2169915b17e64 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2436449 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#70428}
-
- 19 Jun, 2020 1 commit
-
-
Michael Lippautz authored
This is a reland of e0c1a349 The issue was passing SentinelPointer (== +1) through T*. The fix is disabling cfi unrelated cast diagnostic for the bottlenecks (Get()). This means that nullptr is treated the same as kSentinelPointer. The alternative would be a DCHECK that Get() does not return kSentinelPointer and adjusting all Member and Persistent logic that uses Get() to work on void*. This is quite intrusive as it involves Swap(), heterogeneous assignments, comparisons, etc. Original change's description: > cppgc: Properly clear (Weak)Peristent and WeakMember pointers > > The CL addresses two issues with (Weak)Persistent and WeakMember: > 1. (Weak)Persistent pointers are cleared on heap teardown. Before this > CL the pointers would contain stale values which could lead to UAF. > 2. WeakPersistent and WeakMember are cleared using a combination of > internal clearing methods and mutable fields which avoids the use > of const_cast<>. > > Bug: chromium:1056170 > Change-Id: Ibf2b0f0856771b4f6906608cde13a6d43ebf81f3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2248190 > Reviewed-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/master@{#68394} Bug: chromium:1056170 Change-Id: I3d74b43464c2973df1956f51b1419d755dd9f519 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2250240Reviewed-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/master@{#68426}
-
- 17 Jun, 2020 2 commits
-
-
Zhi An Ng authored
This reverts commit e0c1a349. Reason for revert: Fails on Linux 64 cfi https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20cfi/25283? TBR=omerkatz@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,bikineev@chromium.org Change-Id: I2b208c4019979735925bff5e0551291fae6a14d6 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2250320Reviewed-by:
Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#68396}
-
Michael Lippautz authored
The CL addresses two issues with (Weak)Persistent and WeakMember: 1. (Weak)Persistent pointers are cleared on heap teardown. Before this CL the pointers would contain stale values which could lead to UAF. 2. WeakPersistent and WeakMember are cleared using a combination of internal clearing methods and mutable fields which avoids the use of const_cast<>. Bug: chromium:1056170 Change-Id: Ibf2b0f0856771b4f6906608cde13a6d43ebf81f3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2248190Reviewed-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/master@{#68394}
-
- 27 Apr, 2020 3 commits
-
-
Clemens Backes authored
The category name changed in https://crrev.com/c/2159690 (in depot_tools), hence presubmit tests start failing whenever someone touches a file which still refers to the old category. R=zhin@chromium.org TBR=machenbach@chromium.org No-Try: true No-Tree-Checks: true Change-Id: I62813a42d63e512d421c4fe94229d04a56056978 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2165760Reviewed-by:
Zhi An Ng <zhin@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67403}
-
Nico Hartmann authored
This reverts commit 313ad531. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Presubmit/10183? Original change's description: > cppgc: Fix NOLINT exception > > Bug: chromium:1056170 > Change-Id: I6a0fdd867caa7fc49ff586d878bc57b621260afc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2167863 > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Commit-Queue: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67396} TBR=mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: Icb016aec744160e84ee02148dba5b383403d27cc No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2167444Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#67397}
-
Omer Katz authored
Bug: chromium:1056170 Change-Id: I6a0fdd867caa7fc49ff586d878bc57b621260afc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2167863 Commit-Queue: Omer Katz <omerkatz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#67396}
-
- 21 Apr, 2020 1 commit
-
-
Michael Lippautz authored
- Fixes includes to be relative to include/ which allows embedders to just add V8's include directory to get started. - Adds public target for the library as "cppgc". Bug: chromium:1056170 Change-Id: Iec9b644e20016a5d7281275b739821a050fd2540 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157366Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67278}
-
- 15 Apr, 2020 1 commit
-
-
Anton Bikineev authored
CrossThreadPersistent and friends are the followup. Bug: chromium:1056170 Change-Id: Ide910062d80952da73b922398c281162b1861f47 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144957 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
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@{#67153}
-