• Ulan Degenbaev's avatar
    Reland "[heap] Add concurrent marking write barrier" · e0ad32ce
    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: 's avatarDominik Inführ <dinfuehr@chromium.org>
    Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#69517}
    e0ad32ce
heap.cc 240 KB