• Dominik Inführ's avatar
    [heap] Optimize time to reach global safepoint · 86038ecf
    Dominik Inführ authored
    Initial support for global safepoints kept it simple by entering a
    safepoint for each of them one after another. This means
    time-to-global-safepoint is the sum of all time-to-safepoint operations.
    We can improve this slightly by splitting up the safepoint iteration
    into two operations:
    
    1) Initiate safepoint lock (locks local_heaps_mutex_, arms the barrier
       and sets SafepointRequested flag for all client threads)
    2) Block until all runnning client threads reach a safepoint
    
    We now perform operation 1) for all clients first and only then start
    with operation 2).
    
    Bug: v8:11708
    Change-Id: Iaafd3c6d70bcf7026f722633e9250b04148b3da6
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3310910Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#78308}
    86038ecf
safepoint.h 5.83 KB