• Ulan Degenbaev's avatar
    [heap] Add concurrent marking write barrier · 1dd7f3a9
    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: 's avatarDominik Inführ <dinfuehr@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#69448}
    1dd7f3a9
incremental-marking.cc 40.1 KB