• Dominik Inführ's avatar
    Reland "[heap] Attach to shared isolate after setting up main thread" · 535242ff
    Dominik Inführ authored
    This is a reland of 929b83fb
    
    This version of the CL also fixes initialization of the
    marking_barrier_ in the LocalHeap constructor.
    
    This CL also got rebased on Victor's CL in https://crrev.com/c/3229361.
    It added a code_space_allocator_ in LocalHeap which needs to be
    initialized a bit later on the main thread as well.
    
    Original change's description:
    > [heap] Attach to shared isolate after setting up main thread
    >
    > Attach to the shared isolate after the main thread was set up. Otherwise
    > it could happen that a shared GC initiated from another isolate might
    > see no threads are running and performs the safepoint operation in the
    > middle of isolate deserialization.
    >
    > We use DisallowSafepoints to check that the isolate doesn't join a
    > global safepoint before deserialization is complete. DisallowSafepoints
    > used to prevent only invocations of Safepoint() but was updated to
    > also prevent Park() and Unpark() invocations. Each state change could
    > cause the thread to reach a safepoint, which would allow a shared GC
    > to run.
    >
    > We now also DCHECK that every isolate has at least one local heap and
    > that shared collections aren't started before deserialization is
    > complete.
    >
    > Bug: v8:11708
    > Change-Id: Iba3fb59dd951d5ee4fc9934158062287302fc279
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3221157
    > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
    > Reviewed-by: Shu-yu Guo <syg@chromium.org>
    > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    > Cr-Commit-Position: refs/heads/main@{#77424}
    
    Bug: v8:11708
    Change-Id: I7d44e4a5f76cc09092c2444cede10e9331222c1d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3229361Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
    Reviewed-by: 's avatarShu-yu Guo <syg@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#77448}
    535242ff
heap.cc 259 KB