• jameslahm's avatar
    [logging] Fix tsan errro between Profiler::Insert and · 4fb91a0f
    jameslahm authored
    ... Profiler::Remove.
    
    In Profiler::Insert and Profiler::Remove, TSAN cannot
    figure out that when head_ and tail_ equals, Profiler::Insert
    will always execute before Profiler::Remove, and tsan
    will report data race between buffer_[head] write and
    buffer_[base::Relaxed_Load(&tail_)]. This CL changes the
    tail_ atomic load and store memory order to gurantee that
    buffer_ read and write always after and before tail_ load
    and store, which gives tsan more constraint.
    
    Bug: v8:12838
    Change-Id: I50296ffa4606b288e9ad9edc15d42f21ca1c7d2a
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3626454Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
    Commit-Queue: 王澳 <wangao.james@bytedance.com>
    Cr-Commit-Position: refs/heads/main@{#80421}
    4fb91a0f
log.cc 81 KB