• Michael Lippautz's avatar
    Reland "Reland "heap: Fix initial GC configuration for C++-only heaps"" · b125c943
    Michael Lippautz authored
    This is a reland of 1f0b0ed0
    
    No actual code has changed in the relands.
    
    The change was reverted due to triggering flaky failures in
    WebMediaPlayerImplTest which was not set up properly. The test setup
    has been fixed in https://crrev.com/c/3025796.
    
    Original change's description:
    > Reland "heap: Fix initial GC configuration for C++-only heaps"
    >
    > This is a reland of 7ef67b2e
    >
    > Manually checked that the CL was not the culprit breaking
    >   media_blink_unittests --gtest_filter=WebMediaPlayerImplTest.MemDumpReporting
    >
    > Original change's description:
    > > heap: Fix initial GC configuration for C++-only heaps
    > >
    > > Heaps in V8 start with a large limit that is shrunk upon young
    > > generation GCs, based on some liveness estimate. This provides best
    > > throughput during startup while at the same time finding a reasonable
    > > first limit.
    > >
    > > For C++ (embedder memory) there is no estimate which is why it was
    > > piggy-backing on V8. This breaks in scenarios where no JS memory is
    > > allocated.
    > >
    > > In this fix we start a memory reducer after embedder memory has hit
    > > the activation threshold if no GC happened so far. As soon as a single
    > > Scavenger has happened, we leave it up to the JS estimate to figure
    > > out a limit. Memory reducing GCs will then find a regular limit based
    > > on the initial live size.
    > >
    > > Drive-by: Give embedders the same activiation threshold of 8MB as JS.
    > >
    > > Bug: chromium:1217076
    > > Change-Id: I8469696002ac2af8d75d6b47def062d2608387a1
    > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2944935
    > > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
    > > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    > > Cr-Commit-Position: refs/heads/master@{#75012}
    >
    > Bug: chromium:1217076
    > Change-Id: I482d8525379e33095834d5b41be8bb49bdd8a5d4
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2949094
    > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    > Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
    > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#75048}
    
    Bug: chromium:1217076
    Change-Id: If920d6b2c54a0c9d67e55e276421e4694eb1414e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2960218Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
    Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#75894}
    b125c943
heap.cc 257 KB