• Ulan Degenbaev's avatar
    [heap] Rework incremental marking scheduling · 4c65986a
    Ulan Degenbaev authored
    The new scheduling reduces the main thread marking performed in
    tasks and on allocation. It is based on two counters:
    - bytes_marked,
    - scheduled_bytes_to_mark.
    
    The bytes_marked accounts marking done both the main thread and
    the concurrent threads. The scheduled_bytes_to_mark increases based
    on allocated bytes and also based on time passed since the start
    of marking. The main thread steps are allowed to mark the minimal
    amount if bytes_marked is greater than scheduled_bytes_to_mark.
    
    This also changes tasks posted for marking. Before only normal
    tasks were posted. Now delayed tasks are posted if the marker is
    ahead of schedule.
    
    Bug: 926189
    
    Change-Id: I5bc9c33a5ecfc9f8d09f78d08ae277d16a2779ca
    Reviewed-on: https://chromium-review.googlesource.com/c/1443056
    Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
    Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59433}
    4c65986a
incremental-marking.h 11.4 KB