- 20 Apr, 2021 1 commit
-
-
Dominik Inführ authored
This allows using --track-retaining-path with incremental marking enabled. This CL will also track when an object was kept alive through the write barrier or the RetainMaps feature. Bug: v8:11645 Change-Id: I08ab5e500ae3580aead0c188c2caeb8f2a5f9f07 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2829440Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#74061}
-
- 07 Apr, 2021 1 commit
-
-
Ulan Degenbaev authored
Change-Id: Ic00ce0856d6ce3f9c6872fa7f35c469f7177c9c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2807605 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#73830}
-
- 22 Sep, 2020 1 commit
-
-
Ulan Degenbaev authored
Building and running tests with v8_enabled_concurrent_marking=false currently produces two failures: 1) Segmentation fault on attempt to mark a read-only object. This is fixed by changing MarkBit::Set to be a no-op if the object is already marked (which is the case for the readonly space). 2) Missing write-barrier due to bogus condition in the bailout. The barrier can be skipped only if the host object is not marked yet. This also disables two concurrent allocation tests that rely on concurrent marking write-barrier. Bug: v8:10875 Change-Id: Ib3a238fc34c8f20c697470e0bd4ac427fb4bdc0e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2421816Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#70041}
-
- 21 Aug, 2020 1 commit
-
-
Ulan Degenbaev authored
This is a reland of 1dd7f3a9 Original change's description: > [heap] Add concurrent marking write barrier > > A LocalHeap creates and owns an instance of MarkingBarrier. A pointer to > the marking barrier is set to a thread_local variable for a quick access. > > WriteBarrier::MarkingSlow fetches the thread_local variable and invokes > the write barrier if it is set. Otherwise, it invokes the main thread > heap()->marking_barrier(). > > Each marking barrier has its own local marking worklist that is > published during scavenge (for updating pointers) and at finalization > of incremental marking. > > Typed-slot recording does not work yet because it is not thread-safe. > It will be fixed in a subsequent CL. > > Bug: v8:10315 > Change-Id: I221a906436cd91e7405a253ce0eb06cf68046f2c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354809 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69448} Bug: v8:10315 Change-Id: I155bb0aadd53a5333672fb085b33d8da86f3f336 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2364509Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69517}
-
- 18 Aug, 2020 2 commits
-
-
Maya Lekova authored
This reverts commit 1dd7f3a9. Reason for revert: Breaks TSAN - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/32846? Original change's description: > [heap] Add concurrent marking write barrier > > A LocalHeap creates and owns an instance of MarkingBarrier. A pointer to > the marking barrier is set to a thread_local variable for a quick access. > > WriteBarrier::MarkingSlow fetches the thread_local variable and invokes > the write barrier if it is set. Otherwise, it invokes the main thread > heap()->marking_barrier(). > > Each marking barrier has its own local marking worklist that is > published during scavenge (for updating pointers) and at finalization > of incremental marking. > > Typed-slot recording does not work yet because it is not thread-safe. > It will be fixed in a subsequent CL. > > Bug: v8:10315 > Change-Id: I221a906436cd91e7405a253ce0eb06cf68046f2c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354809 > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69448} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I9719d565aaa313cd23f5e759dcef1246f475eb46 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10315 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2362689Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#69451}
-
Ulan Degenbaev authored
A LocalHeap creates and owns an instance of MarkingBarrier. A pointer to the marking barrier is set to a thread_local variable for a quick access. WriteBarrier::MarkingSlow fetches the thread_local variable and invokes the write barrier if it is set. Otherwise, it invokes the main thread heap()->marking_barrier(). Each marking barrier has its own local marking worklist that is published during scavenge (for updating pointers) and at finalization of incremental marking. Typed-slot recording does not work yet because it is not thread-safe. It will be fixed in a subsequent CL. Bug: v8:10315 Change-Id: I221a906436cd91e7405a253ce0eb06cf68046f2c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2354809 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69448}
-
- 11 Aug, 2020 1 commit
-
-
Ulan Degenbaev authored
This is the first step in refactoring Worklist to allow arbitrary number of local worklists with private segments: - Introduce MarkingWorklistImpl<> which will eventually replace (and will be renamed to) Worklist. - MarkingWorklistImpl<> owns the global pool of segments but does not keep track of private segments. - MarkingWorklistImpl<>::Local owns private segments and can be constructed dynamically on background threads. - Rename the existing MarkingWorklistsHolder to MarkingWorklists. - Rename the existing MarkingWorklists to MarkingWorklists::Local. - Rename the existing marking_workists_holder to marking_worklists. - Rename the existing marking_worklists to local_marking_worklists. Design doc: https://bit.ly/2XMtjLi Bug: v8:10315 Change-Id: I9da34883ad34f4572fccd40c51e51eaf50c617bc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2343330Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69330}
-
- 14 Jul, 2020 1 commit
-
-
Ulan Degenbaev authored
The host object may have an impossible markbit pattern if it is a one-word filler followed by an already marked object. Bug: v8:10698 Change-Id: I498e6f0768fbdb181fc893f98f224dd3cd0e37e6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2295600Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68848}
-
- 07 Jul, 2020 1 commit
-
-
Ulan Degenbaev authored
This moves marking write barrier related functions from Heap and IncrementalMarking into a separate class: MarkingBarrier. Additionally, a new WriteBarrier class is added at the heap API level that dispatches to MarkingBarrier. Future CLs will move slots recording in MarkingBarrier and apply the same refactoring to the generational barrier. An instance of MarkingBarrier will be added to each LocalHeap and enable it to emit a write barrier from a background thread. Bug: v8:10315 Change-Id: Icc147b48563d88c85d99ead99b1e201f523721d0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2280083Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68703}
-