- 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}
-
- 28 Jan, 2021 1 commit
-
-
Michael Lippautz authored
Embedders forward the Value in TraceEphemeron as Member reference (as depicted in the API docs). Add TraceTrait<Member<T>> that forwards to TraceTrait<T> accordingly, supporting the intended use case. Bug: chromium:1056170 Change-Id: I3b247cb3553ae34d9ff5393aefeaec24068e78c2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2656255 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72412}
-
- 14 Jan, 2021 1 commit
-
-
Michael Lippautz authored
Adds support for Member<const T> by keeping the untyped storage in MemberBase const, which is stronger than the required constness. All accesses go through BasicMember which can re-add the appropriate constness specified by the user. The same concept is applied to all Member and Persistent handles. Bug: chromium:1056170 Change-Id: I5a620258be3acb6a1b4b1437e69b8d7d1ec5ce6f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2625871Reviewed-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@{#72090}
-
- 23 Oct, 2020 1 commit
-
-
Omer Katz authored
This is a reland of 90ea9b35 Original change's description: > cppgc: Port backing store compaction. > > This CL ports the existing backing store compaction algorithm from > blink. It does not attempt to improve on the existing algorithm. > > Currently only unified heap uses the compaction implementation. It is > never triggered through standalone GCs. > > The compaction implementation resides within an internal "subtle" namespace. > > Bug: v8:10990 > Change-Id: I4aa781db1b711e7aafc34234c4fb142de84394d7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2485228 > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70714} Bug: v8:10990 Change-Id: I527c2042a26648d058bfe4d355527cce9a3eeadc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2492331 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70736}
-
- 22 Oct, 2020 2 commits
-
-
Omer Katz authored
This reverts commit 90ea9b35. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Mac64%20-%20debug/31274? Original change's description: > cppgc: Port backing store compaction. > > This CL ports the existing backing store compaction algorithm from > blink. It does not attempt to improve on the existing algorithm. > > Currently only unified heap uses the compaction implementation. It is > never triggered through standalone GCs. > > The compaction implementation resides within an internal "subtle" namespace. > > Bug: v8:10990 > Change-Id: I4aa781db1b711e7aafc34234c4fb142de84394d7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2485228 > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70714} TBR=mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: Iadae1ee0c6c0400f0e1a0a3805be5316a1d4b979 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10990 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2492330Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70716}
-
Omer Katz authored
This CL ports the existing backing store compaction algorithm from blink. It does not attempt to improve on the existing algorithm. Currently only unified heap uses the compaction implementation. It is never triggered through standalone GCs. The compaction implementation resides within an internal "subtle" namespace. Bug: v8:10990 Change-Id: I4aa781db1b711e7aafc34234c4fb142de84394d7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2485228 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70714}
-
- 28 Aug, 2020 1 commit
-
-
Anton Bikineev authored
Explicit nullification aims to simplify migration to Oilpan, in the case when unique_ptrs are converted to Member and user code relies on source pointers to be in "empty" state. Change-Id: Ia54137d53ca03f93932b3c1f2eaba439a416a06e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2379857Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#69603}
-
- 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}
-
- 14 Apr, 2020 1 commit
-
-
Michael Lippautz authored
Bug: chromium:1056170 Change-Id: Idbbab7af430e3bc2791eba630b331a75a67e35a9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2142262Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67112}
-
- 08 Apr, 2020 1 commit
-
-
Anton Bikineev authored
This change comprises a few tiny changes wrt Member: 1) Move member policies to a separate file so that some of them (CheckingPolicy) can be reused by Persistent; 2) SFINAE out incompatible pointers from heterogeneous ctor/asgnmt; 3) Rename kMemberSentinel to kSentinelPointer. Bug: chromium:1056170 Change-Id: I4482998e6ba61005a5d0861dcae9fab2aa43702c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139587Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#67061}
-
- 07 Apr, 2020 1 commit
-
-
Michael Lippautz authored
This CL adds the necessary traits to dispatch from Member through a visitor implementation for GarabgeCollected and GarbageCollectedMixin. Bug: chromium:1056170 Change-Id: I12680335044aaa842639fb5e8f9a3ac61587f51a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2138431Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> 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@{#67041}
-
- 01 Apr, 2020 1 commit
-
-
Omer Katz authored
This CL introduces - GarbageCollectedMixin - IsGarbageCollectedMixinType - HeapObjectHeaderFor (utility method to get correct header for mixins) Bug: chromium:1056170 Change-Id: I48c2c02fa57487824130ea3620c975a0785075e4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130275 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66953}
-
- 31 Mar, 2020 1 commit
-
-
Anton Bikineev authored
This CL introduces - Member - WeakMember - UntracedMember interfaces. Remaining work is to add pointer verifier and write barrier implementation. Bug: chromium:1056170 Change-Id: Iddb8e4d002db0b1d1652f2946ddfa08a98a889c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124323 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66927}
-