- 13 May, 2022 1 commit
-
-
Anton Bikineev authored
With caged heap enabled, we can halve Member<> by storing only the least significant half. The base of the heap is stored in a thread local variable. The feature has therefore an implication that only single heap is allowed per thread. The feature is gated by the new GN arg: cppgc_enable_pointer_compression. Bug: chromium:1325007 Change-Id: Ic7f1ecb7b9ded57caad63d95bbc8e8ad6ad65031 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739979Reviewed-by: Almothana Athamneh <almuthanna@chromium.org> Commit-Queue: Almothana Athamneh <almuthanna@chromium.org> Commit-Queue: Tamer Tas <tmrts@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#80518}
-
- 29 Apr, 2022 1 commit
-
-
Anton Bikineev authored
The CL introduces a new option --cppgc-young-generation. This option can't be enabled statically, because V8 options are parsed after heap initialization. The CL changes minor GC so that it can be enabled dynamically. The way it works is as follows: - the user calls YoungGenerationEnabler::Enable(); - a heap checks in the next atomic pause whether the flag was enabled; - if so, the heap enables young generation for itself. To avoid barrier regressions without young-generation enabled, the CL changes the meaning of the global flag is-any-incremental-or-concurrent-marking to is-barrier-enabled. The runtime option would enable us to test young generation on try- and performance-bots. Bug: chromium:1029379 Change-Id: I664cccdcd208225ffcbf9901f1284b56d088c5c3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3607993 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80274}
-
- 23 Mar, 2022 1 commit
-
-
Anton Bikineev authored
Accidentally, remembered sets for slots and source objects were passed by value when visiting. Bug: chromium:1029379 Change-Id: I1942a13605990c0b13c378d33d3ace602daddf0d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545318 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79591}
-
- 25 Feb, 2022 1 commit
-
-
Anton Bikineev authored
The CL gets rid of the assumption that WeakCallbackItem::parameter always points to an object with a custom callback, which might not be the case for weak containers. This fixes failures in cppgc-non-default bot. Bug: chromium:1029379 Change-Id: I9ab6cb357153801efaa0d902c9eedff07d12ffe7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3490932Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#79296}
-
- 23 Feb, 2022 1 commit
-
-
Anton Bikineev authored
Custom callbacks assume that untraced pointers always point to valid, not freed objects. They must make sure that upon callback completion no UntracedMembers point to an unreachable object. This may not hold true if a custom callback for an old object operates with a reference to a young object that was freed on a minor collection cycle. To maintain the mentioned invariant, the CL calls custom callbacks for old objects on every minor collection cycle. The alternative options could be: 1) Replacing all UntracedMembers with WeakMembers, since WeakMember supports tracing and the barrier. 2) Emitting the generational barrier for UntracedMember + tracing UntracedMember on minor collection cycles. The first option requires changing multiple use sites and can bring some performance regression. The second option requires changing the GC logic and the semantics of UntracedMember. Bug: chromium:1029379 Change-Id: I9bb89e4787daf05990feed374dceca940be7be63 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3472499Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#79221}
-
- 22 Feb, 2022 1 commit
-
-
Anton Bikineev authored
This CL refactors all remembered set logic from heap-base and explicit-management to a new class OldToNewRememberedSet. Bug: chromium:1029379 Change-Id: Id032b9dcc01af6f9bb9e546ed9bc6324da6d9b66 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3472498Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#79212}
-